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

void __regparm3 open_input_bfds(lang_statement_union_type *s,open_bfd_mode mode)

{
  lang_statement_union *tree;
  char *pcVar1;
  asection *paVar2;
  walk_wild_section_handler_t p_Var3;
  lang_statement_list_type *plVar4;
  lang_statement_union **pplVar5;
  char *pcVar6;
  bfd_boolean bVar7;
  byte bVar8;
  bfd_link_hash_entry *pbVar9;
  bool bVar10;
  lang_statement_list_type add;
  
  if (s != (lang_statement_union_type *)0x0) {
    do {
      switch((s->header).type) {
      case lang_output_section_statement_enum:
        open_input_bfds((s->output_section_statement).children.head,mode);
        s = (s->header).next;
        break;
      case lang_assignment_statement_enum:
        tree = (s->output_section_statement).children.head;
        if ((tree->wild_statement).filenames_sorted != etree_assert) {
          exp_fold_tree_no_dot((etree_type *)tree);
        }
      default:
_L2353:
        s = (s->header).next;
        break;
      case lang_input_statement_enum:
        p_Var3 = (s->wild_statement).walk_wild_section_handler;
        if (((uint)p_Var3 & 0x400) != 0) {
          (s->input_statement).target = current_target;
          if (((mode != OPEN_BFD_NORMAL) &&
              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||
               (plugin_insert == (lang_input_statement_type *)0x0)))) &&
             ((((uint)p_Var3 & 0x200) != 0 &&
              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {
            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;
            if (bVar8 == 2) {
              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;
            }
            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&
                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&
                    ((*(int *)(paVar2->id + 4) == 5 &&
                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {
LAB_000264c8:
              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =
                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;
            }
          }
          pplVar5 = lang_output_section_statement.tail;
          add.head = (lang_statement_union *)0x0;
          add.tail = &add.head;
          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);
          if (bVar7 == 0) {
            config.make_executable = 0;
          }
          if (add.head != (lang_statement_union *)0x0) {
            if (lang_output_section_statement.tail == pplVar5) {
              *add.tail = (s->header).next;
              (s->header).next = add.head;
            }
            else {
              pcVar1 = (s->wild_statement).filename;
              pcVar6 = (char *)dcgettext(0,
                                         "%P: warning: %s contains output sections; did you forget -T?\n"
                                         ,5);
              einfo(pcVar6,pcVar1);
              plVar4 = stat_ptr;
              *stat_ptr->tail = add.head;
              plVar4->tail = add.tail;
            }
          }
        }
        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;
        plugin_insert = (lang_input_statement_type *)0x0;
        s = (s->header).next;
        break;
      case lang_wild_statement_enum:
        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&
             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&
            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&
           ((link_info.path_separator == '\0' ||
            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {
          lookup_name(pcVar1);
        }
        open_input_bfds((s->wild_statement).children.head,mode);
        s = (s->header).next;
        break;
      case lang_target_statement_enum:
        current_target = (s->wild_statement).filename;
        s = (s->header).next;
        break;
      case lang_group_statement_enum:
        pbVar9 = (link_info.hash)->undefs_tail;
        do {
          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);
          bVar10 = (link_info.hash)->undefs_tail != pbVar9;
          pbVar9 = (link_info.hash)->undefs_tail;
        } while (bVar10);
        goto _L2353;
      case lang_constructors_statement_enum:
        open_input_bfds(constructor_list.head,mode);
        s = (s->header).next;
      }
    } while (s != (lang_statement_union *)0x0);
  }
  if ((input_flags._1_1_ & 8) == 0) {
    return;
  }
  einfo("%F");
  return;
}



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

void __regparm3 FUN_00026210(int *param_1,uint param_2)

{
  byte bVar1;
  undefined *puVar2;
  uint uVar3;
  char *pcVar4;
  int iVar5;
  undefined4 uVar6;
  char *pcVar7;
  byte bVar8;
  int iVar9;
  bool bVar10;
  int iStack_24;
  int *piStack_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x26219;
  if (param_1 != (int *)0x0) {
    do {
      switch(param_1[1]) {
      case 0:
        FUN_00026210();
        param_1 = (int *)*param_1;
        break;
      case 1:
        if (*(int *)(param_1[2] + 0xc) != 8) {
          FUN_000308a0(param_1[2]);
        }
      default:
LAB_00026270:
        param_1 = (int *)*param_1;
        break;
      case 2:
        bVar1 = *(byte *)((int)param_1 + 0x25);
        if ((bVar1 & 4) != 0) {
          param_1[8] = DAT_00084810;
          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&
             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {
            bVar8 = *(byte *)(iVar9 + 0x28) & 7;
            if (bVar8 == 2) {
              if ((bVar1 & 1) == 0) goto code_r0x000264c8;
            }
            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&
                     ((char)param_1[9] < '\0')) &&
                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&
                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {
code_r0x000264c8:
              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;
            }
          }
          iVar9 = DAT_00084b84;
          iStack_24 = 0;
          piStack_20 = &iStack_24;
          iVar5 = FUN_00025570(param_1,piStack_20);
          if (iVar5 == 0) {
            DAT_00084cc4 = 0;
          }
          if (iStack_24 != 0) {
            if (DAT_00084b84 == iVar9) {
              *piStack_20 = *param_1;
              *param_1 = iStack_24;
            }
            else {
              iVar9 = param_1[2];
              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5
                               );
              FUN_00032b30(uVar6,iVar9);
              puVar2 = PTR_DAT_00084318;
              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;
              *(int **)(puVar2 + 4) = piStack_20;
            }
          }
        }
        if (DAT_000847a0 != param_1) goto LAB_00026270;
        DAT_000847a0 = (int *)0x0;
        param_1 = (int *)*param_1;
        break;
      case 4:
        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&
            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&
           ((DAT_00084bca == '\0' ||
            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {
          FUN_00025b30();
        }
        FUN_00026210();
        param_1 = (int *)*param_1;
        break;
      case 10:
        DAT_00084810 = param_1[2];
        param_1 = (int *)*param_1;
        break;
      case 0xd:
        uVar3 = param_2 | 1;
        iVar9 = *(int *)(DAT_00084be0 + 0x20);
        do {
          FUN_00026210(param_2,uVar3);
          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;
          iVar9 = *(int *)(DAT_00084be0 + 0x20);
        } while (bVar10);
        goto LAB_00026270;
      case 0xf:
        FUN_00026210();
        param_1 = (int *)*param_1;
      }
    } while (param_1 != (int *)0x0);
  }
  if ((DAT_00084b70._1_1_ & 8) == 0) {
    return;
  }
  FUN_00032b30(&DAT_0004d0a0);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000159c0
ADD EBX,0x5dde7
SUB ESP,0x2c
MOV dword ptr [ESP],EDX
TEST EAX,EAX
JZ 0x00026276
MOV ESI,EAX
LEA EAX,[EBX + 0xb80]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0xcc0]
MOV dword ptr [ESP + 0xc],EAX
CMP dword ptr [ESI + 0x4],0xf
JA 0x00026270
MOV EAX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffc8c24]
ADD ECX,EBX
JMP ECX
MOV ESI,dword ptr [ESI]
TEST ESI,ESI
JNZ 0x0002623f
LEA EAX,[EBX + 0xb70]
TEST byte ptr [EAX + 0x1],0x8
JNZ 0x00026448
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
LEA EAX,[EBX + 0xfffc90a0]
PUSH EAX
CALL 0x00032b30
ADD ESP,0x10
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00026210(int *param_1,uint param_2)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  byte bVar8;\n  int iVar9;\n  bool bVar10;\n  int iStack_24;\n  int *piStack_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26219;\n  if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }\n  if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }\n  FUN_00032b30(&DAT_0004d0a0);\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00026210(int *param_1,uint param_2)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  byte bVar8;\n  int iVar9;\n  bool bVar10;\n  int iStack_24;\n  int *piStack_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26219;\n  if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }\n  if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }\n  FUN_00032b30(&DAT_0004d0a0);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00026210(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  byte bVar8;\n  int iVar9;\n  bool bVar10;\n  int iStack_24;\n  int *piStack_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26219;\n  if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }\n  if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }\n  FUN_00032b30(&DAT_0004d0a0);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int iStack_24;" primitive_type identifier ;) (declaration "int *piStack_20;" primitive_type (pointer_declarator "*piStack_20" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x26219;" (assignment_expression "uStack_14 = 0x26219" identifier = number_literal) ;) (if_statement "if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }" { (do_statement "do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);" do (compound_statement "{\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    }" { (switch_statement "switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }" switch (parenthesized_expression "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) )) (compound_statement "{\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }" { (case_statement "case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;" case number_literal : (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }" case number_literal : (if_statement "if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }" if (parenthesized_expression "(*(int *)(param_1[2] + 0xc) != 8)" ( (binary_expression "*(int *)(param_1[2] + 0xc) != 8" (pointer_expression "*(int *)(param_1[2] + 0xc)" * (cast_expression "(int *)(param_1[2] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0xc)" ( (binary_expression "param_1[2] + 0xc" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n          FUN_000308a0(param_1[2]);\n        }" { (expression_statement "FUN_000308a0(param_1[2]);" (call_expression "FUN_000308a0(param_1[2])" identifier (argument_list "(param_1[2])" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) ))) ;) }))) (case_statement "default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;" default : (labeled_statement "LAB_00026270:\n        param_1 = (int *)*param_1;" statement_identifier : (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;" case number_literal : (expression_statement "bVar1 = *(byte *)((int)param_1 + 0x25);" (assignment_expression "bVar1 = *(byte *)((int)param_1 + 0x25)" identifier = (pointer_expression "*(byte *)((int)param_1 + 0x25)" * (cast_expression "(byte *)((int)param_1 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x25)" ( (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }" { (expression_statement "param_1[8] = DAT_00084810;" (assignment_expression "param_1[8] = DAT_00084810" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }" if (parenthesized_expression "(((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0))))" ( (binary_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))" (parenthesized_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0))))" ( (binary_expression "(param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))" ( (parenthesized_expression "((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0))" ( (binary_expression "(param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)" (binary_expression "(param_2 & 2) == 0" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) == number_literal) || (parenthesized_expression "(DAT_000847a0 == (int *)0x0)" ( (binary_expression "DAT_000847a0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) && (parenthesized_expression "(((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))" ( (parenthesized_expression "((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0))" ( (binary_expression "(bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)" (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(iVar9 = param_1[4], iVar9 != 0)" ( (comma_expression "iVar9 = param_1[4], iVar9 != 0" (assignment_expression "iVar9 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }" { (expression_statement "bVar8 = *(byte *)(iVar9 + 0x28) & 7;" (assignment_expression "bVar8 = *(byte *)(iVar9 + 0x28) & 7" identifier = (binary_expression "*(byte *)(iVar9 + 0x28) & 7" (pointer_expression "*(byte *)(iVar9 + 0x28)" * (cast_expression "(byte *)(iVar9 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" if (parenthesized_expression "(bVar8 == 2)" ( (binary_expression "bVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }" { (if_statement "if ((bVar1 & 1) == 0) goto code_r0x000264c8;" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x000264c8;" goto statement_identifier ;)) }) (else_clause "else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" else (if_statement "if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" if (parenthesized_expression "((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0))))" ( (binary_expression "(((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))" (parenthesized_expression "(((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0'))" ( (binary_expression "((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')" (parenthesized_expression "((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0))" ( (binary_expression "(bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)" (parenthesized_expression "(bVar8 == 1)" ( (binary_expression "bVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "((*(byte *)(iVar9 + 0x29) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x29) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x29) & 8)" ( (binary_expression "*(byte *)(iVar9 + 0x29) & 8" (pointer_expression "*(byte *)(iVar9 + 0x29)" * (cast_expression "(byte *)(iVar9 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x29)" ( (binary_expression "iVar9 + 0x29" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((char)param_1[9] < '\0')" ( (binary_expression "(char)param_1[9] < '\0'" (cast_expression "(char)param_1[9]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[9]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))" ( (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0))" ( (binary_expression "*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)" (binary_expression "*(int *)(*(int *)(iVar9 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar9 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar9 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 4) + 4)" ( (binary_expression "*(int *)(iVar9 + 4) + 4" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) && (parenthesized_expression "((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40)" ( (binary_expression "*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40" (pointer_expression "*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8)" * (cast_expression "(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0xa0) + 0x9b8)" ( (binary_expression "*(int *)(iVar9 + 0xa0) + 0x9b8" (pointer_expression "*(int *)(iVar9 + 0xa0)" * (cast_expression "(int *)(iVar9 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" { (labeled_statement "code_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;" statement_identifier : (expression_statement "*(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;" (assignment_expression "*(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10" (pointer_expression "*(byte *)((int)param_1 + 0x25)" * (cast_expression "(byte *)((int)param_1 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x25)" ( (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_1 + 0x25) & 0xed | 0x10" (binary_expression "*(byte *)((int)param_1 + 0x25) & 0xed" (pointer_expression "*(byte *)((int)param_1 + 0x25)" * (cast_expression "(byte *)((int)param_1 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x25)" ( (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | number_literal)) ;)) })))) })) (expression_statement "iVar9 = DAT_00084b84;" (assignment_expression "iVar9 = DAT_00084b84" identifier = identifier) ;) (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" identifier = number_literal) ;) (expression_statement "piStack_20 = &iStack_24;" (assignment_expression "piStack_20 = &iStack_24" identifier = (pointer_expression "&iStack_24" & identifier)) ;) (expression_statement "iVar5 = FUN_00025570(param_1,piStack_20);" (assignment_expression "iVar5 = FUN_00025570(param_1,piStack_20)" identifier = (call_expression "FUN_00025570(param_1,piStack_20)" identifier (argument_list "(param_1,piStack_20)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            DAT_00084cc4 = 0;\n          }" { (expression_statement "DAT_00084cc4 = 0;" (assignment_expression "DAT_00084cc4 = 0" identifier = number_literal) ;) })) (if_statement "if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }" if (parenthesized_expression "(iStack_24 != 0)" ( (binary_expression "iStack_24 != 0" identifier != number_literal) )) (compound_statement "{\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }" { (if_statement "if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" if (parenthesized_expression "(DAT_00084b84 == iVar9)" ( (binary_expression "DAT_00084b84 == iVar9" identifier == identifier) )) (compound_statement "{\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }" { (expression_statement "*piStack_20 = *param_1;" (assignment_expression "*piStack_20 = *param_1" (pointer_expression "*piStack_20" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = iStack_24;" (assignment_expression "*param_1 = iStack_24" (pointer_expression "*param_1" * identifier) = identifier) ;) }) (else_clause "else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" else (compound_statement "{\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" { (expression_statement "iVar9 = param_1[2];" (assignment_expression "iVar9 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );" (assignment_expression "uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" identifier = (call_expression "dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" identifier (argument_list "(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" ( number_literal , (string_literal ""%P: warning: %s contains output sections; did you forget -T?\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00032b30(uVar6,iVar9);" (call_expression "FUN_00032b30(uVar6,iVar9)" identifier (argument_list "(uVar6,iVar9)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_DAT_00084318;" (assignment_expression "puVar2 = PTR_DAT_00084318" identifier = identifier) ;) (expression_statement "**(int **)(PTR_DAT_00084318 + 4) = iStack_24;" (assignment_expression "**(int **)(PTR_DAT_00084318 + 4) = iStack_24" (pointer_expression "**(int **)(PTR_DAT_00084318 + 4)" * (pointer_expression "*(int **)(PTR_DAT_00084318 + 4)" * (cast_expression "(int **)(PTR_DAT_00084318 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_00084318 + 4)" ( (binary_expression "PTR_DAT_00084318 + 4" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(int **)(puVar2 + 4) = piStack_20;" (assignment_expression "*(int **)(puVar2 + 4) = piStack_20" (pointer_expression "*(int **)(puVar2 + 4)" * (cast_expression "(int **)(puVar2 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = identifier) ;) }))) })) })) (if_statement "if (DAT_000847a0 != param_1) goto LAB_00026270;" if (parenthesized_expression "(DAT_000847a0 != param_1)" ( (binary_expression "DAT_000847a0 != param_1" identifier != identifier) )) (goto_statement "goto LAB_00026270;" goto statement_identifier ;)) (expression_statement "DAT_000847a0 = (int *)0x0;" (assignment_expression "DAT_000847a0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;" case number_literal : (if_statement "if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }" if (parenthesized_expression "(((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0))))" ( (binary_expression "((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))" (parenthesized_expression "((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0))" ( (binary_expression "(((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)" (parenthesized_expression "(((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0))" ( (binary_expression "((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)" (parenthesized_expression "((param_2 & 2) == 0)" ( (binary_expression "(param_2 & 2) == 0" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)" ( (comma_expression "pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0" (assignment_expression "pcVar7 = (char *)param_1[2]" identifier = (cast_expression "(char *)param_1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) , (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)" ( (comma_expression "pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strpbrk(pcVar7,"?*[")" identifier = (call_expression "strpbrk(pcVar7,"?*[")" identifier (argument_list "(pcVar7,"?*[")" ( identifier , (string_literal ""?*["" " string_content ") )))) , (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))" ( (parenthesized_expression "(DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0))" ( (binary_expression "DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)" (binary_expression "DAT_00084bca == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)" ( (comma_expression "pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0" (assignment_expression "pcVar7 = strchr(pcVar7,(int)DAT_00084bca)" identifier = (call_expression "strchr(pcVar7,(int)DAT_00084bca)" identifier (argument_list "(pcVar7,(int)DAT_00084bca)" ( identifier , (cast_expression "(int)DAT_00084bca" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n          FUN_00025b30();\n        }" { (expression_statement "FUN_00025b30();" (call_expression "FUN_00025b30()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;" case number_literal : (expression_statement "DAT_00084810 = param_1[2];" (assignment_expression "DAT_00084810 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;" case number_literal : (expression_statement "uVar3 = param_2 | 1;" (assignment_expression "uVar3 = param_2 | 1" identifier = (binary_expression "param_2 | 1" identifier | number_literal)) ;) (expression_statement "iVar9 = *(int *)(DAT_00084be0 + 0x20);" (assignment_expression "iVar9 = *(int *)(DAT_00084be0 + 0x20)" identifier = (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" * (cast_expression "(int *)(DAT_00084be0 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084be0 + 0x20)" ( (binary_expression "DAT_00084be0 + 0x20" identifier + number_literal) ))))) ;) (do_statement "do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);" do (compound_statement "{\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        }" { (expression_statement "FUN_00026210(param_2,uVar3);" (call_expression "FUN_00026210(param_2,uVar3)" identifier (argument_list "(param_2,uVar3)" ( identifier , identifier ))) ;) (expression_statement "bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;" (assignment_expression "bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9" identifier = (binary_expression "*(int *)(DAT_00084be0 + 0x20) != iVar9" (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" * (cast_expression "(int *)(DAT_00084be0 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084be0 + 0x20)" ( (binary_expression "DAT_00084be0 + 0x20" identifier + number_literal) )))) != identifier)) ;) (expression_statement "iVar9 = *(int *)(DAT_00084be0 + 0x20);" (assignment_expression "iVar9 = *(int *)(DAT_00084be0 + 0x20)" identifier = (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" * (cast_expression "(int *)(DAT_00084be0 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084be0 + 0x20)" ( (binary_expression "DAT_00084be0 + 0x20" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (goto_statement "goto LAB_00026270;" goto statement_identifier ;)) (case_statement "case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;" case number_literal : (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;)) })) }) while (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }" if (parenthesized_expression "((DAT_00084b70._1_1_ & 8) == 0)" ( (binary_expression "(DAT_00084b70._1_1_ & 8) == 0" (parenthesized_expression "(DAT_00084b70._1_1_ & 8)" ( (binary_expression "DAT_00084b70._1_1_ & 8" (field_expression "DAT_00084b70._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00032b30(&DAT_0004d0a0);" (call_expression "FUN_00032b30(&DAT_0004d0a0)" identifier (argument_list "(&DAT_0004d0a0)" ( (pointer_expression "&DAT_0004d0a0" & identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 open_input_bfds(lang_statement_union_type *s,open_bfd_mode mode)\n\n{\n  lang_statement_union *tree;\n  char *pcVar1;\n  asection *paVar2;\n  walk_wild_section_handler_t p_Var3;\n  lang_statement_list_type *plVar4;\n  lang_statement_union **pplVar5;\n  char *pcVar6;\n  bfd_boolean bVar7;\n  byte bVar8;\n  bfd_link_hash_entry *pbVar9;\n  bool bVar10;\n  lang_statement_list_type add;\n  \n  if (s != (lang_statement_union_type *)0x0) {\n    do {\n      switch((s->header).type) {\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }\n    } while (s != (lang_statement_union *)0x0);\n  }\n  if ((input_flags._1_1_ & 8) == 0) {\n    return;\n  }\n  einfo("%F");\n  return;\n}\n\n" comment (function_definition "void __regparm3 open_input_bfds(lang_statement_union_type *s,open_bfd_mode mode)\n\n{\n  lang_statement_union *tree;\n  char *pcVar1;\n  asection *paVar2;\n  walk_wild_section_handler_t p_Var3;\n  lang_statement_list_type *plVar4;\n  lang_statement_union **pplVar5;\n  char *pcVar6;\n  bfd_boolean bVar7;\n  byte bVar8;\n  bfd_link_hash_entry *pbVar9;\n  bool bVar10;\n  lang_statement_list_type add;\n  \n  if (s != (lang_statement_union_type *)0x0) {\n    do {\n      switch((s->header).type) {\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }\n    } while (s != (lang_statement_union *)0x0);\n  }\n  if ((input_flags._1_1_ & 8) == 0) {\n    return;\n  }\n  einfo("%F");\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "open_input_bfds(lang_statement_union_type *s,open_bfd_mode mode)" identifier (parameter_list "(lang_statement_union_type *s,open_bfd_mode mode)" ( (parameter_declaration "lang_statement_union_type *s" type_identifier (pointer_declarator "*s" * identifier)) , (parameter_declaration "open_bfd_mode mode" type_identifier identifier) ))) (compound_statement "{\n  lang_statement_union *tree;\n  char *pcVar1;\n  asection *paVar2;\n  walk_wild_section_handler_t p_Var3;\n  lang_statement_list_type *plVar4;\n  lang_statement_union **pplVar5;\n  char *pcVar6;\n  bfd_boolean bVar7;\n  byte bVar8;\n  bfd_link_hash_entry *pbVar9;\n  bool bVar10;\n  lang_statement_list_type add;\n  \n  if (s != (lang_statement_union_type *)0x0) {\n    do {\n      switch((s->header).type) {\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }\n    } while (s != (lang_statement_union *)0x0);\n  }\n  if ((input_flags._1_1_ & 8) == 0) {\n    return;\n  }\n  einfo("%F");\n  return;\n}" { (declaration "lang_statement_union *tree;" type_identifier (pointer_declarator "*tree" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "asection *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "walk_wild_section_handler_t p_Var3;" type_identifier identifier ;) (declaration "lang_statement_list_type *plVar4;" type_identifier (pointer_declarator "*plVar4" * identifier) ;) (declaration "lang_statement_union **pplVar5;" type_identifier (pointer_declarator "**pplVar5" * (pointer_declarator "*pplVar5" * identifier)) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "bfd_boolean bVar7;" type_identifier identifier ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "bfd_link_hash_entry *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "lang_statement_list_type add;" type_identifier identifier ;) (if_statement "if (s != (lang_statement_union_type *)0x0) {\n    do {\n      switch((s->header).type) {\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }\n    } while (s != (lang_statement_union *)0x0);\n  }" if (parenthesized_expression "(s != (lang_statement_union_type *)0x0)" ( (binary_expression "s != (lang_statement_union_type *)0x0" identifier != (cast_expression "(lang_statement_union_type *)0x0" ( (type_descriptor "lang_statement_union_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      switch((s->header).type) {\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }\n    } while (s != (lang_statement_union *)0x0);\n  }" { (do_statement "do {\n      switch((s->header).type) {\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }\n    } while (s != (lang_statement_union *)0x0);" do (compound_statement "{\n      switch((s->header).type) {\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }\n    }" { (switch_statement "switch((s->header).type) {\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }" switch (parenthesized_expression "((s->header).type)" ( (field_expression "(s->header).type" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier) )) (compound_statement "{\n      case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\n_L2353:\n        s = (s->header).next;\n        break;\n      case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;\n      case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;\n      case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;\n      case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;\n      case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;\n      }" { (case_statement "case lang_output_section_statement_enum:\n        open_input_bfds((s->output_section_statement).children.head,mode);\n        s = (s->header).next;\n        break;" case identifier : (expression_statement "open_input_bfds((s->output_section_statement).children.head,mode);" (call_expression "open_input_bfds((s->output_section_statement).children.head,mode)" identifier (argument_list "((s->output_section_statement).children.head,mode)" ( (field_expression "(s->output_section_statement).children.head" (field_expression "(s->output_section_statement).children" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier) , identifier ))) ;) (expression_statement "s = (s->header).next;" (assignment_expression "s = (s->header).next" identifier = (field_expression "(s->header).next" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case lang_assignment_statement_enum:\n        tree = (s->output_section_statement).children.head;\n        if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }" case identifier : (expression_statement "tree = (s->output_section_statement).children.head;" (assignment_expression "tree = (s->output_section_statement).children.head" identifier = (field_expression "(s->output_section_statement).children.head" (field_expression "(s->output_section_statement).children" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (if_statement "if ((tree->wild_statement).filenames_sorted != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }" if (parenthesized_expression "((tree->wild_statement).filenames_sorted != etree_assert)" ( (binary_expression "(tree->wild_statement).filenames_sorted != etree_assert" (field_expression "(tree->wild_statement).filenames_sorted" (parenthesized_expression "(tree->wild_statement)" ( (field_expression "tree->wild_statement" identifier -> field_identifier) )) . field_identifier) != identifier) )) (compound_statement "{\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }" { (expression_statement "exp_fold_tree_no_dot((etree_type *)tree);" (call_expression "exp_fold_tree_no_dot((etree_type *)tree)" identifier (argument_list "((etree_type *)tree)" ( (cast_expression "(etree_type *)tree" ( (type_descriptor "etree_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) (case_statement "default:\n_L2353:\n        s = (s->header).next;\n        break;" default : (labeled_statement "_L2353:\n        s = (s->header).next;" statement_identifier : (expression_statement "s = (s->header).next;" (assignment_expression "s = (s->header).next" identifier = (field_expression "(s->header).next" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier)) ;)) (break_statement "break;" break ;)) (case_statement "case lang_input_statement_enum:\n        p_Var3 = (s->wild_statement).walk_wild_section_handler;\n        if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }\n        if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;\n        plugin_insert = (lang_input_statement_type *)0x0;\n        s = (s->header).next;\n        break;" case identifier : (expression_statement "p_Var3 = (s->wild_statement).walk_wild_section_handler;" (assignment_expression "p_Var3 = (s->wild_statement).walk_wild_section_handler" identifier = (field_expression "(s->wild_statement).walk_wild_section_handler" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if (((uint)p_Var3 & 0x400) != 0) {\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }" if (parenthesized_expression "(((uint)p_Var3 & 0x400) != 0)" ( (binary_expression "((uint)p_Var3 & 0x400) != 0" (parenthesized_expression "((uint)p_Var3 & 0x400)" ( (binary_expression "(uint)p_Var3 & 0x400" (cast_expression "(uint)p_Var3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          (s->input_statement).target = current_target;\n          if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);\n          if (bVar7 == 0) {\n            config.make_executable = 0;\n          }\n          if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }" { (expression_statement "(s->input_statement).target = current_target;" (assignment_expression "(s->input_statement).target = current_target" (field_expression "(s->input_statement).target" (parenthesized_expression "(s->input_statement)" ( (field_expression "s->input_statement" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))) {\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }" if (parenthesized_expression "(((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0))))" ( (binary_expression "((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))" (parenthesized_expression "((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0))))" ( (binary_expression "(mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))" (parenthesized_expression "(mode != OPEN_BFD_NORMAL)" ( (binary_expression "mode != OPEN_BFD_NORMAL" identifier != identifier) )) && (parenthesized_expression "(((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))" ( (parenthesized_expression "((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0))" ( (binary_expression "(mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)" (binary_expression "(mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL" (parenthesized_expression "(mode & OPEN_BFD_RESCAN)" ( (binary_expression "mode & OPEN_BFD_RESCAN" identifier & identifier) )) == identifier) || (parenthesized_expression "(plugin_insert == (lang_input_statement_type *)0x0)" ( (binary_expression "plugin_insert == (lang_input_statement_type *)0x0" identifier == (cast_expression "(lang_input_statement_type *)0x0" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) && (parenthesized_expression "((((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)))" ( (parenthesized_expression "(((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0))" ( (binary_expression "((uint)p_Var3 & 0x200) != 0 &&\n              (paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)" (binary_expression "((uint)p_Var3 & 0x200) != 0" (parenthesized_expression "((uint)p_Var3 & 0x200)" ( (binary_expression "(uint)p_Var3 & 0x200" (cast_expression "(uint)p_Var3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) != number_literal) && (parenthesized_expression "(paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0)" ( (comma_expression "paVar2 = (s->reloc_statement).section, paVar2 != (asection *)0x0" (assignment_expression "paVar2 = (s->reloc_statement).section" identifier = (field_expression "(s->reloc_statement).section" (parenthesized_expression "(s->reloc_statement)" ( (field_expression "s->reloc_statement" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "paVar2 != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n            bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;\n            if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }\n          }" { (expression_statement "bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7;" (assignment_expression "bVar8 = *(byte *)((int)&paVar2->lma + 4) & 7" identifier = (binary_expression "*(byte *)((int)&paVar2->lma + 4) & 7" (pointer_expression "*(byte *)((int)&paVar2->lma + 4)" * (cast_expression "(byte *)((int)&paVar2->lma + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar2->lma + 4)" ( (binary_expression "(int)&paVar2->lma + 4" (cast_expression "(int)&paVar2->lma" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar2->lma" & (field_expression "paVar2->lma" identifier -> field_identifier))) + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar8 == 2) {\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }\n            else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }" if (parenthesized_expression "(bVar8 == 2)" ( (binary_expression "bVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;\n            }" { (if_statement "if (((uint)p_Var3 & 0x100) == 0) goto LAB_000264c8;" if (parenthesized_expression "(((uint)p_Var3 & 0x100) == 0)" ( (binary_expression "((uint)p_Var3 & 0x100) == 0" (parenthesized_expression "((uint)p_Var3 & 0x100)" ( (binary_expression "(uint)p_Var3 & 0x100" (cast_expression "(uint)p_Var3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_000264c8;" goto statement_identifier ;)) }) (else_clause "else if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }" else (if_statement "if ((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))) {\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }" if (parenthesized_expression "((((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0))))" ( (binary_expression "(((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))" (parenthesized_expression "(((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0'))" ( (binary_expression "((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')" (parenthesized_expression "((bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0))" ( (binary_expression "(bVar8 == 1) && ((paVar2->lma & 0x80000000000) != 0)" (parenthesized_expression "(bVar8 == 1)" ( (binary_expression "bVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "((paVar2->lma & 0x80000000000) != 0)" ( (binary_expression "(paVar2->lma & 0x80000000000) != 0" (parenthesized_expression "(paVar2->lma & 0x80000000000)" ( (binary_expression "paVar2->lma & 0x80000000000" (field_expression "paVar2->lma" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')" ( (binary_expression "*(char *)&(s->wild_statement).walk_wild_section_handler < '\0'" (pointer_expression "*(char *)&(s->wild_statement).walk_wild_section_handler" * (cast_expression "(char *)&(s->wild_statement).walk_wild_section_handler" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(s->wild_statement).walk_wild_section_handler" & (field_expression "(s->wild_statement).walk_wild_section_handler" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)))) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)))" ( (parenthesized_expression "(*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0))" ( (binary_expression "*(int *)(paVar2->id + 4) == 5 &&\n                     ((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)" (binary_expression "*(int *)(paVar2->id + 4) == 5" (pointer_expression "*(int *)(paVar2->id + 4)" * (cast_expression "(int *)(paVar2->id + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar2->id + 4)" ( (binary_expression "paVar2->id + 4" (field_expression "paVar2->id" identifier -> field_identifier) + number_literal) )))) == number_literal) && (parenthesized_expression "((*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0)" ( (binary_expression "(*(byte *)(paVar2->target_index + 0x9b8) & 0x40) != 0" (parenthesized_expression "(*(byte *)(paVar2->target_index + 0x9b8) & 0x40)" ( (binary_expression "*(byte *)(paVar2->target_index + 0x9b8) & 0x40" (pointer_expression "*(byte *)(paVar2->target_index + 0x9b8)" * (cast_expression "(byte *)(paVar2->target_index + 0x9b8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(paVar2->target_index + 0x9b8)" ( (binary_expression "paVar2->target_index + 0x9b8" (field_expression "paVar2->target_index" identifier -> field_identifier) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\nLAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;\n            }" { (labeled_statement "LAB_000264c8:\n              *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;" statement_identifier : (expression_statement "*(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;" (assignment_expression "*(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10" (pointer_expression "*(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1)" * (cast_expression "(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(s->wild_statement).walk_wild_section_handler + 1)" ( (binary_expression "(int)&(s->wild_statement).walk_wild_section_handler + 1" (cast_expression "(int)&(s->wild_statement).walk_wild_section_handler" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(s->wild_statement).walk_wild_section_handler" & (field_expression "(s->wild_statement).walk_wild_section_handler" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) = (binary_expression "*(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10" (binary_expression "*(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed" (pointer_expression "*(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1)" * (cast_expression "(byte *)((int)&(s->wild_statement).walk_wild_section_handler + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(s->wild_statement).walk_wild_section_handler + 1)" ( (binary_expression "(int)&(s->wild_statement).walk_wild_section_handler + 1" (cast_expression "(int)&(s->wild_statement).walk_wild_section_handler" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(s->wild_statement).walk_wild_section_handler" & (field_expression "(s->wild_statement).walk_wild_section_handler" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier))) + number_literal) )))) & number_literal) | number_literal)) ;)) })))) })) (expression_statement "pplVar5 = lang_output_section_statement.tail;" (assignment_expression "pplVar5 = lang_output_section_statement.tail" identifier = (field_expression "lang_output_section_statement.tail" identifier . field_identifier)) ;) (expression_statement "add.head = (lang_statement_union *)0x0;" (assignment_expression "add.head = (lang_statement_union *)0x0" (field_expression "add.head" identifier . field_identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "add.tail = &add.head;" (assignment_expression "add.tail = &add.head" (field_expression "add.tail" identifier . field_identifier) = (pointer_expression "&add.head" & (field_expression "add.head" identifier . field_identifier))) ;) (expression_statement "bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail);" (assignment_expression "bVar7 = load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail)" identifier = (call_expression "load_symbols(&s->input_statement,(lang_statement_list_type *)add.tail)" identifier (argument_list "(&s->input_statement,(lang_statement_list_type *)add.tail)" ( (pointer_expression "&s->input_statement" & (field_expression "s->input_statement" identifier -> field_identifier)) , (cast_expression "(lang_statement_list_type *)add.tail" ( (type_descriptor "lang_statement_list_type *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "add.tail" identifier . field_identifier)) )))) ;) (if_statement "if (bVar7 == 0) {\n            config.make_executable = 0;\n          }" if (parenthesized_expression "(bVar7 == 0)" ( (binary_expression "bVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            config.make_executable = 0;\n          }" { (expression_statement "config.make_executable = 0;" (assignment_expression "config.make_executable = 0" (field_expression "config.make_executable" identifier . field_identifier) = number_literal) ;) })) (if_statement "if (add.head != (lang_statement_union *)0x0) {\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }" if (parenthesized_expression "(add.head != (lang_statement_union *)0x0)" ( (binary_expression "add.head != (lang_statement_union *)0x0" (field_expression "add.head" identifier . field_identifier) != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }" { (if_statement "if (lang_output_section_statement.tail == pplVar5) {\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }\n            else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }" if (parenthesized_expression "(lang_output_section_statement.tail == pplVar5)" ( (binary_expression "lang_output_section_statement.tail == pplVar5" (field_expression "lang_output_section_statement.tail" identifier . field_identifier) == identifier) )) (compound_statement "{\n              *add.tail = (s->header).next;\n              (s->header).next = add.head;\n            }" { (expression_statement "*add.tail = (s->header).next;" (assignment_expression "*add.tail = (s->header).next" (pointer_expression "*add.tail" * (field_expression "add.tail" identifier . field_identifier)) = (field_expression "(s->header).next" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(s->header).next = add.head;" (assignment_expression "(s->header).next = add.head" (field_expression "(s->header).next" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier) = (field_expression "add.head" identifier . field_identifier)) ;) }) (else_clause "else {\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }" else (compound_statement "{\n              pcVar1 = (s->wild_statement).filename;\n              pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar6,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }" { (expression_statement "pcVar1 = (s->wild_statement).filename;" (assignment_expression "pcVar1 = (s->wild_statement).filename" identifier = (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5)" identifier = (cast_expression "(char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5)" identifier (argument_list "(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5)" ( number_literal , (string_literal ""%P: warning: %s contains output sections; did you forget -T?\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(pcVar6,pcVar1);" (call_expression "einfo(pcVar6,pcVar1)" identifier (argument_list "(pcVar6,pcVar1)" ( identifier , identifier ))) ;) (expression_statement "plVar4 = stat_ptr;" (assignment_expression "plVar4 = stat_ptr" identifier = identifier) ;) (expression_statement "*stat_ptr->tail = add.head;" (assignment_expression "*stat_ptr->tail = add.head" (pointer_expression "*stat_ptr->tail" * (field_expression "stat_ptr->tail" identifier -> field_identifier)) = (field_expression "add.head" identifier . field_identifier)) ;) (expression_statement "plVar4->tail = add.tail;" (assignment_expression "plVar4->tail = add.tail" (field_expression "plVar4->tail" identifier -> field_identifier) = (field_expression "add.tail" identifier . field_identifier)) ;) }))) })) })) (if_statement "if ((lang_statement_union_type *)plugin_insert != s) goto _L2353;" if (parenthesized_expression "((lang_statement_union_type *)plugin_insert != s)" ( (binary_expression "(lang_statement_union_type *)plugin_insert != s" (cast_expression "(lang_statement_union_type *)plugin_insert" ( (type_descriptor "lang_statement_union_type *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) (goto_statement "goto _L2353;" goto statement_identifier ;)) (expression_statement "plugin_insert = (lang_input_statement_type *)0x0;" (assignment_expression "plugin_insert = (lang_input_statement_type *)0x0" identifier = (cast_expression "(lang_input_statement_type *)0x0" ( (type_descriptor "lang_input_statement_type *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "s = (s->header).next;" (assignment_expression "s = (s->header).next" identifier = (field_expression "(s->header).next" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case lang_wild_statement_enum:\n        if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }\n        open_input_bfds((s->wild_statement).children.head,mode);\n        s = (s->header).next;\n        break;" case identifier : (if_statement "if (((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))) {\n          lookup_name(pcVar1);\n        }" if (parenthesized_expression "(((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0))))" ( (binary_expression "((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))" (parenthesized_expression "((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0))" ( (binary_expression "(((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)" (parenthesized_expression "(((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0))" ( (binary_expression "((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)" (parenthesized_expression "((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL)" ( (binary_expression "(mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL" (parenthesized_expression "(mode & OPEN_BFD_RESCAN)" ( (binary_expression "mode & OPEN_BFD_RESCAN" identifier & identifier) )) == identifier) )) && (parenthesized_expression "(pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)" ( (comma_expression "pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0" (assignment_expression "pcVar1 = (s->wild_statement).filename" identifier = (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "pcVar1 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0)" ( (comma_expression "pcVar6 = strpbrk(pcVar1,"?*["), pcVar6 == (char *)0x0" (assignment_expression "pcVar6 = strpbrk(pcVar1,"?*[")" identifier = (call_expression "strpbrk(pcVar1,"?*[")" identifier (argument_list "(pcVar1,"?*[")" ( identifier , (string_literal ""?*["" " string_content ") )))) , (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "((link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)))" ( (parenthesized_expression "(link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0))" ( (binary_expression "link_info.path_separator == '\0' ||\n            (pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)" (binary_expression "link_info.path_separator == '\0'" (field_expression "link_info.path_separator" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0)" ( (comma_expression "pcVar6 = strchr(pcVar1,(int)link_info.path_separator), pcVar6 == (char *)0x0" (assignment_expression "pcVar6 = strchr(pcVar1,(int)link_info.path_separator)" identifier = (call_expression "strchr(pcVar1,(int)link_info.path_separator)" identifier (argument_list "(pcVar1,(int)link_info.path_separator)" ( identifier , (cast_expression "(int)link_info.path_separator" ( (type_descriptor "int" primitive_type) ) (field_expression "link_info.path_separator" identifier . field_identifier)) )))) , (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n          lookup_name(pcVar1);\n        }" { (expression_statement "lookup_name(pcVar1);" (call_expression "lookup_name(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })) (expression_statement "open_input_bfds((s->wild_statement).children.head,mode);" (call_expression "open_input_bfds((s->wild_statement).children.head,mode)" identifier (argument_list "((s->wild_statement).children.head,mode)" ( (field_expression "(s->wild_statement).children.head" (field_expression "(s->wild_statement).children" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier) , identifier ))) ;) (expression_statement "s = (s->header).next;" (assignment_expression "s = (s->header).next" identifier = (field_expression "(s->header).next" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case lang_target_statement_enum:\n        current_target = (s->wild_statement).filename;\n        s = (s->header).next;\n        break;" case identifier : (expression_statement "current_target = (s->wild_statement).filename;" (assignment_expression "current_target = (s->wild_statement).filename" identifier = (field_expression "(s->wild_statement).filename" (parenthesized_expression "(s->wild_statement)" ( (field_expression "s->wild_statement" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "s = (s->header).next;" (assignment_expression "s = (s->header).next" identifier = (field_expression "(s->header).next" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier)) ;) (break_statement "break;" break ;)) (case_statement "case lang_group_statement_enum:\n        pbVar9 = (link_info.hash)->undefs_tail;\n        do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);\n        goto _L2353;" case identifier : (expression_statement "pbVar9 = (link_info.hash)->undefs_tail;" (assignment_expression "pbVar9 = (link_info.hash)->undefs_tail" identifier = (field_expression "(link_info.hash)->undefs_tail" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier)) ;) (do_statement "do {\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        } while (bVar10);" do (compound_statement "{\n          open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);\n          bVar10 = (link_info.hash)->undefs_tail != pbVar9;\n          pbVar9 = (link_info.hash)->undefs_tail;\n        }" { (expression_statement "open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE);" (call_expression "open_input_bfds((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE)" identifier (argument_list "((s->output_section_statement).children.head,mode | OPEN_BFD_FORCE)" ( (field_expression "(s->output_section_statement).children.head" (field_expression "(s->output_section_statement).children" (parenthesized_expression "(s->output_section_statement)" ( (field_expression "s->output_section_statement" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (binary_expression "mode | OPEN_BFD_FORCE" identifier | identifier) ))) ;) (expression_statement "bVar10 = (link_info.hash)->undefs_tail != pbVar9;" (assignment_expression "bVar10 = (link_info.hash)->undefs_tail != pbVar9" identifier = (binary_expression "(link_info.hash)->undefs_tail != pbVar9" (field_expression "(link_info.hash)->undefs_tail" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier) != identifier)) ;) (expression_statement "pbVar9 = (link_info.hash)->undefs_tail;" (assignment_expression "pbVar9 = (link_info.hash)->undefs_tail" identifier = (field_expression "(link_info.hash)->undefs_tail" (parenthesized_expression "(link_info.hash)" ( (field_expression "link_info.hash" identifier . field_identifier) )) -> field_identifier)) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (goto_statement "goto _L2353;" goto statement_identifier ;)) (case_statement "case lang_constructors_statement_enum:\n        open_input_bfds(constructor_list.head,mode);\n        s = (s->header).next;" case identifier : (expression_statement "open_input_bfds(constructor_list.head,mode);" (call_expression "open_input_bfds(constructor_list.head,mode)" identifier (argument_list "(constructor_list.head,mode)" ( (field_expression "constructor_list.head" identifier . field_identifier) , identifier ))) ;) (expression_statement "s = (s->header).next;" (assignment_expression "s = (s->header).next" identifier = (field_expression "(s->header).next" (parenthesized_expression "(s->header)" ( (field_expression "s->header" identifier -> field_identifier) )) . field_identifier)) ;)) })) }) while (parenthesized_expression "(s != (lang_statement_union *)0x0)" ( (binary_expression "s != (lang_statement_union *)0x0" identifier != (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((input_flags._1_1_ & 8) == 0) {\n    return;\n  }" if (parenthesized_expression "((input_flags._1_1_ & 8) == 0)" ( (binary_expression "(input_flags._1_1_ & 8) == 0" (parenthesized_expression "(input_flags._1_1_ & 8)" ( (binary_expression "input_flags._1_1_ & 8" (field_expression "input_flags._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "einfo("%F");" (call_expression "einfo("%F")" identifier (argument_list "("%F")" ( (string_literal ""%F"" " string_content ") ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00026210(int *param_1,uint param_2)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  byte bVar8;\n  int iVar9;\n  bool bVar10;\n  int iStack_24;\n  int *piStack_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26219;\n  if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }\n  if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }\n  FUN_00032b30(&DAT_0004d0a0);\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00026210(int *param_1,uint param_2)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  byte bVar8;\n  int iVar9;\n  bool bVar10;\n  int iStack_24;\n  int *piStack_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26219;\n  if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }\n  if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }\n  FUN_00032b30(&DAT_0004d0a0);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00026210(int *param_1,uint param_2)" identifier (parameter_list "(int *param_1,uint param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  byte bVar8;\n  int iVar9;\n  bool bVar10;\n  int iStack_24;\n  int *piStack_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26219;\n  if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }\n  if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }\n  FUN_00032b30(&DAT_0004d0a0);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "byte bVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "bool bVar10;" primitive_type identifier ;) (declaration "int iStack_24;" primitive_type identifier ;) (declaration "int *piStack_20;" primitive_type (pointer_declarator "*piStack_20" * identifier) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x26219;" (assignment_expression "uStack_14 = 0x26219" identifier = number_literal) ;) (if_statement "if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }" if (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }" { (do_statement "do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);" do (compound_statement "{\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    }" { (switch_statement "switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }" switch (parenthesized_expression "(param_1[1])" ( (subscript_expression "param_1[1]" identifier [ number_literal ]) )) (compound_statement "{\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }" { (case_statement "case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;" case number_literal : (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }" case number_literal : (if_statement "if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }" if (parenthesized_expression "(*(int *)(param_1[2] + 0xc) != 8)" ( (binary_expression "*(int *)(param_1[2] + 0xc) != 8" (pointer_expression "*(int *)(param_1[2] + 0xc)" * (cast_expression "(int *)(param_1[2] + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0xc)" ( (binary_expression "param_1[2] + 0xc" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n          FUN_000308a0(param_1[2]);\n        }" { (expression_statement "FUN_000308a0(param_1[2]);" (call_expression "FUN_000308a0(param_1[2])" identifier (argument_list "(param_1[2])" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) ))) ;) }))) (case_statement "default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;" default : (labeled_statement "LAB_00026270:\n        param_1 = (int *)*param_1;" statement_identifier : (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;" case number_literal : (expression_statement "bVar1 = *(byte *)((int)param_1 + 0x25);" (assignment_expression "bVar1 = *(byte *)((int)param_1 + 0x25)" identifier = (pointer_expression "*(byte *)((int)param_1 + 0x25)" * (cast_expression "(byte *)((int)param_1 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x25)" ( (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }" if (parenthesized_expression "((bVar1 & 4) != 0)" ( (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }" { (expression_statement "param_1[8] = DAT_00084810;" (assignment_expression "param_1[8] = DAT_00084810" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }" if (parenthesized_expression "(((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0))))" ( (binary_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))" (parenthesized_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0))))" ( (binary_expression "(param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))" ( (parenthesized_expression "((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0))" ( (binary_expression "(param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)" (binary_expression "(param_2 & 2) == 0" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) == number_literal) || (parenthesized_expression "(DAT_000847a0 == (int *)0x0)" ( (binary_expression "DAT_000847a0 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) && (parenthesized_expression "(((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))" ( (parenthesized_expression "((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0))" ( (binary_expression "(bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)" (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(iVar9 = param_1[4], iVar9 != 0)" ( (comma_expression "iVar9 = param_1[4], iVar9 != 0" (assignment_expression "iVar9 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) , (binary_expression "iVar9 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }" { (expression_statement "bVar8 = *(byte *)(iVar9 + 0x28) & 7;" (assignment_expression "bVar8 = *(byte *)(iVar9 + 0x28) & 7" identifier = (binary_expression "*(byte *)(iVar9 + 0x28) & 7" (pointer_expression "*(byte *)(iVar9 + 0x28)" * (cast_expression "(byte *)(iVar9 + 0x28)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x28)" ( (binary_expression "iVar9 + 0x28" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" if (parenthesized_expression "(bVar8 == 2)" ( (binary_expression "bVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }" { (if_statement "if ((bVar1 & 1) == 0) goto code_r0x000264c8;" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x000264c8;" goto statement_identifier ;)) }) (else_clause "else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" else (if_statement "if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" if (parenthesized_expression "((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0))))" ( (binary_expression "(((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))" (parenthesized_expression "(((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0'))" ( (binary_expression "((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')" (parenthesized_expression "((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0))" ( (binary_expression "(bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)" (parenthesized_expression "(bVar8 == 1)" ( (binary_expression "bVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "((*(byte *)(iVar9 + 0x29) & 8) != 0)" ( (binary_expression "(*(byte *)(iVar9 + 0x29) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x29) & 8)" ( (binary_expression "*(byte *)(iVar9 + 0x29) & 8" (pointer_expression "*(byte *)(iVar9 + 0x29)" * (cast_expression "(byte *)(iVar9 + 0x29)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0x29)" ( (binary_expression "iVar9 + 0x29" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "((char)param_1[9] < '\0')" ( (binary_expression "(char)param_1[9] < '\0'" (cast_expression "(char)param_1[9]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[9]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))" ( (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0))" ( (binary_expression "*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)" (binary_expression "*(int *)(*(int *)(iVar9 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar9 + 4) + 4)" * (cast_expression "(int *)(*(int *)(iVar9 + 4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 4) + 4)" ( (binary_expression "*(int *)(iVar9 + 4) + 4" (pointer_expression "*(int *)(iVar9 + 4)" * (cast_expression "(int *)(iVar9 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 4)" ( (binary_expression "iVar9 + 4" identifier + number_literal) )))) + number_literal) )))) == number_literal) && (parenthesized_expression "((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)" ( (binary_expression "(*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40)" ( (binary_expression "*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40" (pointer_expression "*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8)" * (cast_expression "(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar9 + 0xa0) + 0x9b8)" ( (binary_expression "*(int *)(iVar9 + 0xa0) + 0x9b8" (pointer_expression "*(int *)(iVar9 + 0xa0)" * (cast_expression "(int *)(iVar9 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 0xa0)" ( (binary_expression "iVar9 + 0xa0" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" { (labeled_statement "code_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;" statement_identifier : (expression_statement "*(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;" (assignment_expression "*(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10" (pointer_expression "*(byte *)((int)param_1 + 0x25)" * (cast_expression "(byte *)((int)param_1 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x25)" ( (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((int)param_1 + 0x25) & 0xed | 0x10" (binary_expression "*(byte *)((int)param_1 + 0x25) & 0xed" (pointer_expression "*(byte *)((int)param_1 + 0x25)" * (cast_expression "(byte *)((int)param_1 + 0x25)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x25)" ( (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) | number_literal)) ;)) })))) })) (expression_statement "iVar9 = DAT_00084b84;" (assignment_expression "iVar9 = DAT_00084b84" identifier = identifier) ;) (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" identifier = number_literal) ;) (expression_statement "piStack_20 = &iStack_24;" (assignment_expression "piStack_20 = &iStack_24" identifier = (pointer_expression "&iStack_24" & identifier)) ;) (expression_statement "iVar5 = FUN_00025570(param_1,piStack_20);" (assignment_expression "iVar5 = FUN_00025570(param_1,piStack_20)" identifier = (call_expression "FUN_00025570(param_1,piStack_20)" identifier (argument_list "(param_1,piStack_20)" ( identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            DAT_00084cc4 = 0;\n          }" { (expression_statement "DAT_00084cc4 = 0;" (assignment_expression "DAT_00084cc4 = 0" identifier = number_literal) ;) })) (if_statement "if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }" if (parenthesized_expression "(iStack_24 != 0)" ( (binary_expression "iStack_24 != 0" identifier != number_literal) )) (compound_statement "{\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }" { (if_statement "if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" if (parenthesized_expression "(DAT_00084b84 == iVar9)" ( (binary_expression "DAT_00084b84 == iVar9" identifier == identifier) )) (compound_statement "{\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }" { (expression_statement "*piStack_20 = *param_1;" (assignment_expression "*piStack_20 = *param_1" (pointer_expression "*piStack_20" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = iStack_24;" (assignment_expression "*param_1 = iStack_24" (pointer_expression "*param_1" * identifier) = identifier) ;) }) (else_clause "else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" else (compound_statement "{\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" { (expression_statement "iVar9 = param_1[2];" (assignment_expression "iVar9 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );" (assignment_expression "uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" identifier = (call_expression "dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" identifier (argument_list "(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" ( number_literal , (string_literal ""%P: warning: %s contains output sections; did you forget -T?\n"" " string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00032b30(uVar6,iVar9);" (call_expression "FUN_00032b30(uVar6,iVar9)" identifier (argument_list "(uVar6,iVar9)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_DAT_00084318;" (assignment_expression "puVar2 = PTR_DAT_00084318" identifier = identifier) ;) (expression_statement "**(int **)(PTR_DAT_00084318 + 4) = iStack_24;" (assignment_expression "**(int **)(PTR_DAT_00084318 + 4) = iStack_24" (pointer_expression "**(int **)(PTR_DAT_00084318 + 4)" * (pointer_expression "*(int **)(PTR_DAT_00084318 + 4)" * (cast_expression "(int **)(PTR_DAT_00084318 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_00084318 + 4)" ( (binary_expression "PTR_DAT_00084318 + 4" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(int **)(puVar2 + 4) = piStack_20;" (assignment_expression "*(int **)(puVar2 + 4) = piStack_20" (pointer_expression "*(int **)(puVar2 + 4)" * (cast_expression "(int **)(puVar2 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 4)" ( (binary_expression "puVar2 + 4" identifier + number_literal) )))) = identifier) ;) }))) })) })) (if_statement "if (DAT_000847a0 != param_1) goto LAB_00026270;" if (parenthesized_expression "(DAT_000847a0 != param_1)" ( (binary_expression "DAT_000847a0 != param_1" identifier != identifier) )) (goto_statement "goto LAB_00026270;" goto statement_identifier ;)) (expression_statement "DAT_000847a0 = (int *)0x0;" (assignment_expression "DAT_000847a0 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;" case number_literal : (if_statement "if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }" if (parenthesized_expression "(((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0))))" ( (binary_expression "((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))" (parenthesized_expression "((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0))" ( (binary_expression "(((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)" (parenthesized_expression "(((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0))" ( (binary_expression "((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)" (parenthesized_expression "((param_2 & 2) == 0)" ( (binary_expression "(param_2 & 2) == 0" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)" ( (comma_expression "pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0" (assignment_expression "pcVar7 = (char *)param_1[2]" identifier = (cast_expression "(char *)param_1[2]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) , (binary_expression "pcVar7 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)" ( (comma_expression "pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strpbrk(pcVar7,"?*[")" identifier = (call_expression "strpbrk(pcVar7,"?*[")" identifier (argument_list "(pcVar7,"?*[")" ( identifier , (string_literal ""?*["" " string_content ") )))) , (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))" ( (parenthesized_expression "(DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0))" ( (binary_expression "DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)" (binary_expression "DAT_00084bca == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)" ( (comma_expression "pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0" (assignment_expression "pcVar7 = strchr(pcVar7,(int)DAT_00084bca)" identifier = (call_expression "strchr(pcVar7,(int)DAT_00084bca)" identifier (argument_list "(pcVar7,(int)DAT_00084bca)" ( identifier , (cast_expression "(int)DAT_00084bca" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "pcVar7 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n          FUN_00025b30();\n        }" { (expression_statement "FUN_00025b30();" (call_expression "FUN_00025b30()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;" case number_literal : (expression_statement "DAT_00084810 = param_1[2];" (assignment_expression "DAT_00084810 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;" case number_literal : (expression_statement "uVar3 = param_2 | 1;" (assignment_expression "uVar3 = param_2 | 1" identifier = (binary_expression "param_2 | 1" identifier | number_literal)) ;) (expression_statement "iVar9 = *(int *)(DAT_00084be0 + 0x20);" (assignment_expression "iVar9 = *(int *)(DAT_00084be0 + 0x20)" identifier = (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" * (cast_expression "(int *)(DAT_00084be0 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084be0 + 0x20)" ( (binary_expression "DAT_00084be0 + 0x20" identifier + number_literal) ))))) ;) (do_statement "do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);" do (compound_statement "{\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        }" { (expression_statement "FUN_00026210(param_2,uVar3);" (call_expression "FUN_00026210(param_2,uVar3)" identifier (argument_list "(param_2,uVar3)" ( identifier , identifier ))) ;) (expression_statement "bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;" (assignment_expression "bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9" identifier = (binary_expression "*(int *)(DAT_00084be0 + 0x20) != iVar9" (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" * (cast_expression "(int *)(DAT_00084be0 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084be0 + 0x20)" ( (binary_expression "DAT_00084be0 + 0x20" identifier + number_literal) )))) != identifier)) ;) (expression_statement "iVar9 = *(int *)(DAT_00084be0 + 0x20);" (assignment_expression "iVar9 = *(int *)(DAT_00084be0 + 0x20)" identifier = (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" * (cast_expression "(int *)(DAT_00084be0 + 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00084be0 + 0x20)" ( (binary_expression "DAT_00084be0 + 0x20" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar10)" ( identifier )) ;) (goto_statement "goto LAB_00026270;" goto statement_identifier ;)) (case_statement "case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;" case number_literal : (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" identifier (argument_list "()" ( ))) ;) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;)) })) }) while (parenthesized_expression "(param_1 != (int *)0x0)" ( (binary_expression "param_1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }" if (parenthesized_expression "((DAT_00084b70._1_1_ & 8) == 0)" ( (binary_expression "(DAT_00084b70._1_1_ & 8) == 0" (parenthesized_expression "(DAT_00084b70._1_1_ & 8)" ( (binary_expression "DAT_00084b70._1_1_ & 8" (field_expression "DAT_00084b70._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00032b30(&DAT_0004d0a0);" (call_expression "FUN_00032b30(&DAT_0004d0a0)" identifier (argument_list "(&DAT_0004d0a0)" ( (pointer_expression "&DAT_0004d0a0" & identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (switch_statement switch (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) (compound_statement { (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) }))) (case_statement default : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT != LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) != LIT) ))) )) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) | LIT)) ;)) })))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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 ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE) ) IDENT) )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( IDENT )) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) })) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00026210(int *param_1,uint param_2)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  byte bVar8;\n  int iVar9;\n  bool bVar10;\n  int iStack_24;\n  int *piStack_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26219;\n  if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }\n  if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }\n  FUN_00032b30(&DAT_0004d0a0);\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00026210(int *param_1,uint param_2)" (identifier "FUN_00026210") (parameter_list "(int *param_1,uint param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  uint uVar3;\n  char *pcVar4;\n  int iVar5;\n  undefined4 uVar6;\n  char *pcVar7;\n  byte bVar8;\n  int iVar9;\n  bool bVar10;\n  int iStack_24;\n  int *piStack_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x26219;\n  if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }\n  if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }\n  FUN_00032b30(&DAT_0004d0a0);\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "byte bVar8;" (type_identifier "byte") (identifier "bVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "bool bVar10;" (primitive_type "bool") (identifier "bVar10") (; ";")) (declaration "int iStack_24;" (primitive_type "int") (identifier "iStack_24") (; ";")) (declaration "int *piStack_20;" (primitive_type "int") (pointer_declarator "*piStack_20" (* "*") (identifier "piStack_20")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x26219;" (assignment_expression "uStack_14 = 0x26219" (identifier "uStack_14") (= "=") (number_literal "0x26219")) (; ";")) (if_statement "if (param_1 != (int *)0x0) {\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }" (if "if") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);\n  }" ({ "{") (do_statement "do {\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    } while (param_1 != (int *)0x0);" (do "do") (compound_statement "{\n      switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }\n    }" ({ "{") (switch_statement "switch(param_1[1]) {\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }" (switch "switch") (parenthesized_expression "(param_1[1])" (( "(") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) () ")")) (compound_statement "{\n      case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }\n      default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;\n      case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;\n      case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;\n      case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n      }" ({ "{") (case_statement "case 0:\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;" (case "case") (number_literal "0") (: ":") (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" (identifier "FUN_00026210") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n        if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }" (case "case") (number_literal "1") (: ":") (if_statement "if (*(int *)(param_1[2] + 0xc) != 8) {\n          FUN_000308a0(param_1[2]);\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1[2] + 0xc) != 8)" (( "(") (binary_expression "*(int *)(param_1[2] + 0xc) != 8" (pointer_expression "*(int *)(param_1[2] + 0xc)" (* "*") (cast_expression "(int *)(param_1[2] + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0xc)" (( "(") (binary_expression "param_1[2] + 0xc" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n          FUN_000308a0(param_1[2]);\n        }" ({ "{") (expression_statement "FUN_000308a0(param_1[2]);" (call_expression "FUN_000308a0(param_1[2])" (identifier "FUN_000308a0") (argument_list "(param_1[2])" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (} "}")))) (case_statement "default:\nLAB_00026270:\n        param_1 = (int *)*param_1;\n        break;" (default "default") (: ":") (labeled_statement "LAB_00026270:\n        param_1 = (int *)*param_1;" (statement_identifier "LAB_00026270") (: ":") (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n        bVar1 = *(byte *)((int)param_1 + 0x25);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }\n        if (DAT_000847a0 != param_1) goto LAB_00026270;\n        DAT_000847a0 = (int *)0x0;\n        param_1 = (int *)*param_1;\n        break;" (case "case") (number_literal "2") (: ":") (expression_statement "bVar1 = *(byte *)((int)param_1 + 0x25);" (assignment_expression "bVar1 = *(byte *)((int)param_1 + 0x25)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((int)param_1 + 0x25)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x25)" (( "(") (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x25")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }" (if "if") (parenthesized_expression "((bVar1 & 4) != 0)" (( "(") (binary_expression "(bVar1 & 4) != 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          param_1[8] = DAT_00084810;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }\n          iVar9 = DAT_00084b84;\n          iStack_24 = 0;\n          piStack_20 = &iStack_24;\n          iVar5 = FUN_00025570(param_1,piStack_20);\n          if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }\n          if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }\n        }" ({ "{") (expression_statement "param_1[8] = DAT_00084810;" (assignment_expression "param_1[8] = DAT_00084810" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "DAT_00084810")) (; ";")) (if_statement "if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }" (if "if") (parenthesized_expression "(((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0))))" (( "(") (binary_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))" (parenthesized_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0))))" (( "(") (binary_expression "(param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))" (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))" (( "(") (parenthesized_expression "((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0))" (( "(") (binary_expression "(param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)" (binary_expression "(param_2 & 2) == 0" (parenthesized_expression "(param_2 & 2)" (( "(") (binary_expression "param_2 & 2" (identifier "param_2") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "(DAT_000847a0 == (int *)0x0)" (( "(") (binary_expression "DAT_000847a0 == (int *)0x0" (identifier "DAT_000847a0") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))" (( "(") (parenthesized_expression "((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0))" (( "(") (binary_expression "(bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)" (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(iVar9 = param_1[4], iVar9 != 0)" (( "(") (comma_expression "iVar9 = param_1[4], iVar9 != 0" (assignment_expression "iVar9 = param_1[4]" (identifier "iVar9") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (, ",") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            bVar8 = *(byte *)(iVar9 + 0x28) & 7;\n            if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }\n          }" ({ "{") (expression_statement "bVar8 = *(byte *)(iVar9 + 0x28) & 7;" (assignment_expression "bVar8 = *(byte *)(iVar9 + 0x28) & 7" (identifier "bVar8") (= "=") (binary_expression "*(byte *)(iVar9 + 0x28) & 7" (pointer_expression "*(byte *)(iVar9 + 0x28)" (* "*") (cast_expression "(byte *)(iVar9 + 0x28)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x28)" (( "(") (binary_expression "iVar9 + 0x28" (identifier "iVar9") (+ "+") (number_literal "0x28")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (bVar8 == 2) {\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }\n            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" (if "if") (parenthesized_expression "(bVar8 == 2)" (( "(") (binary_expression "bVar8 == 2" (identifier "bVar8") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              if ((bVar1 & 1) == 0) goto code_r0x000264c8;\n            }" ({ "{") (if_statement "if ((bVar1 & 1) == 0) goto code_r0x000264c8;" (if "if") (parenthesized_expression "((bVar1 & 1) == 0)" (( "(") (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000264c8;" (goto "goto") (statement_identifier "code_r0x000264c8") (; ";"))) (} "}")) (else_clause "else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" (else "else") (if_statement "if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" (if "if") (parenthesized_expression "((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0))))" (( "(") (binary_expression "(((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))" (parenthesized_expression "(((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0'))" (( "(") (binary_expression "((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')" (parenthesized_expression "((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0))" (( "(") (binary_expression "(bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)" (parenthesized_expression "(bVar8 == 1)" (( "(") (binary_expression "bVar8 == 1" (identifier "bVar8") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(iVar9 + 0x29) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(iVar9 + 0x29) & 8) != 0" (parenthesized_expression "(*(byte *)(iVar9 + 0x29) & 8)" (( "(") (binary_expression "*(byte *)(iVar9 + 0x29) & 8" (pointer_expression "*(byte *)(iVar9 + 0x29)" (* "*") (cast_expression "(byte *)(iVar9 + 0x29)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0x29)" (( "(") (binary_expression "iVar9 + 0x29" (identifier "iVar9") (+ "+") (number_literal "0x29")) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((char)param_1[9] < '\0')" (( "(") (binary_expression "(char)param_1[9] < '\0'" (cast_expression "(char)param_1[9]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))" (( "(") (parenthesized_expression "(*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0))" (( "(") (binary_expression "*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&\n                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)" (binary_expression "*(int *)(*(int *)(iVar9 + 4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(iVar9 + 4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(iVar9 + 4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 4) + 4)" (( "(") (binary_expression "*(int *)(iVar9 + 4) + 4" (pointer_expression "*(int *)(iVar9 + 4)" (* "*") (cast_expression "(int *)(iVar9 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 4)" (( "(") (binary_expression "iVar9 + 4" (identifier "iVar9") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) (&& "&&") (parenthesized_expression "((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0" (parenthesized_expression "(*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40)" (( "(") (binary_expression "*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40" (pointer_expression "*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8)" (* "*") (cast_expression "(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar9 + 0xa0) + 0x9b8)" (( "(") (binary_expression "*(int *)(iVar9 + 0xa0) + 0x9b8" (pointer_expression "*(int *)(iVar9 + 0xa0)" (* "*") (cast_expression "(int *)(iVar9 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 0xa0)" (( "(") (binary_expression "iVar9 + 0xa0" (identifier "iVar9") (+ "+") (number_literal "0xa0")) () ")")))) (+ "+") (number_literal "0x9b8")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\ncode_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;\n            }" ({ "{") (labeled_statement "code_r0x000264c8:\n              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;" (statement_identifier "code_r0x000264c8") (: ":") (expression_statement "*(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;" (assignment_expression "*(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10" (pointer_expression "*(byte *)((int)param_1 + 0x25)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x25)" (( "(") (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x25")) () ")")))) (= "=") (binary_expression "*(byte *)((int)param_1 + 0x25) & 0xed | 0x10" (binary_expression "*(byte *)((int)param_1 + 0x25) & 0xed" (pointer_expression "*(byte *)((int)param_1 + 0x25)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x25)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x25)" (( "(") (binary_expression "(int)param_1 + 0x25" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x25")) () ")")))) (& "&") (number_literal "0xed")) (| "|") (number_literal "0x10"))) (; ";"))) (} "}"))))) (} "}"))) (expression_statement "iVar9 = DAT_00084b84;" (assignment_expression "iVar9 = DAT_00084b84" (identifier "iVar9") (= "=") (identifier "DAT_00084b84")) (; ";")) (expression_statement "iStack_24 = 0;" (assignment_expression "iStack_24 = 0" (identifier "iStack_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "piStack_20 = &iStack_24;" (assignment_expression "piStack_20 = &iStack_24" (identifier "piStack_20") (= "=") (pointer_expression "&iStack_24" (& "&") (identifier "iStack_24"))) (; ";")) (expression_statement "iVar5 = FUN_00025570(param_1,piStack_20);" (assignment_expression "iVar5 = FUN_00025570(param_1,piStack_20)" (identifier "iVar5") (= "=") (call_expression "FUN_00025570(param_1,piStack_20)" (identifier "FUN_00025570") (argument_list "(param_1,piStack_20)" (( "(") (identifier "param_1") (, ",") (identifier "piStack_20") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n            DAT_00084cc4 = 0;\n          }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            DAT_00084cc4 = 0;\n          }" ({ "{") (expression_statement "DAT_00084cc4 = 0;" (assignment_expression "DAT_00084cc4 = 0" (identifier "DAT_00084cc4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (iStack_24 != 0) {\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }" (if "if") (parenthesized_expression "(iStack_24 != 0)" (( "(") (binary_expression "iStack_24 != 0" (identifier "iStack_24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }\n          }" ({ "{") (if_statement "if (DAT_00084b84 == iVar9) {\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }\n            else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" (if "if") (parenthesized_expression "(DAT_00084b84 == iVar9)" (( "(") (binary_expression "DAT_00084b84 == iVar9" (identifier "DAT_00084b84") (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n              *piStack_20 = *param_1;\n              *param_1 = iStack_24;\n            }" ({ "{") (expression_statement "*piStack_20 = *param_1;" (assignment_expression "*piStack_20 = *param_1" (pointer_expression "*piStack_20" (* "*") (identifier "piStack_20")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*param_1 = iStack_24;" (assignment_expression "*param_1 = iStack_24" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "iStack_24")) (; ";")) (} "}")) (else_clause "else {\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" (else "else") (compound_statement "{\n              iVar9 = param_1[2];\n              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00032b30(uVar6,iVar9);\n              puVar2 = PTR_DAT_00084318;\n              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;\n              *(int **)(puVar2 + 4) = piStack_20;\n            }" ({ "{") (expression_statement "iVar9 = param_1[2];" (assignment_expression "iVar9 = param_1[2]" (identifier "iVar9") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );" (assignment_expression "uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" (identifier "dcgettext") (argument_list "(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" (( "(") (number_literal "0") (, ",") (string_literal ""%P: warning: %s contains output sections; did you forget -T?\n"" (" """) (string_content "%P: warning: %s contains output sections; did you forget -T?") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00032b30(uVar6,iVar9);" (call_expression "FUN_00032b30(uVar6,iVar9)" (identifier "FUN_00032b30") (argument_list "(uVar6,iVar9)" (( "(") (identifier "uVar6") (, ",") (identifier "iVar9") () ")"))) (; ";")) (expression_statement "puVar2 = PTR_DAT_00084318;" (assignment_expression "puVar2 = PTR_DAT_00084318" (identifier "puVar2") (= "=") (identifier "PTR_DAT_00084318")) (; ";")) (expression_statement "**(int **)(PTR_DAT_00084318 + 4) = iStack_24;" (assignment_expression "**(int **)(PTR_DAT_00084318 + 4) = iStack_24" (pointer_expression "**(int **)(PTR_DAT_00084318 + 4)" (* "*") (pointer_expression "*(int **)(PTR_DAT_00084318 + 4)" (* "*") (cast_expression "(int **)(PTR_DAT_00084318 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_00084318 + 4)" (( "(") (binary_expression "PTR_DAT_00084318 + 4" (identifier "PTR_DAT_00084318") (+ "+") (number_literal "4")) () ")"))))) (= "=") (identifier "iStack_24")) (; ";")) (expression_statement "*(int **)(puVar2 + 4) = piStack_20;" (assignment_expression "*(int **)(puVar2 + 4) = piStack_20" (pointer_expression "*(int **)(puVar2 + 4)" (* "*") (cast_expression "(int **)(puVar2 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 4)" (( "(") (binary_expression "puVar2 + 4" (identifier "puVar2") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "piStack_20")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (if_statement "if (DAT_000847a0 != param_1) goto LAB_00026270;" (if "if") (parenthesized_expression "(DAT_000847a0 != param_1)" (( "(") (binary_expression "DAT_000847a0 != param_1" (identifier "DAT_000847a0") (!= "!=") (identifier "param_1")) () ")")) (goto_statement "goto LAB_00026270;" (goto "goto") (statement_identifier "LAB_00026270") (; ";"))) (expression_statement "DAT_000847a0 = (int *)0x0;" (assignment_expression "DAT_000847a0 = (int *)0x0" (identifier "DAT_000847a0") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }\n        FUN_00026210();\n        param_1 = (int *)*param_1;\n        break;" (case "case") (number_literal "4") (: ":") (if_statement "if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {\n          FUN_00025b30();\n        }" (if "if") (parenthesized_expression "(((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0))))" (( "(") (binary_expression "((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))" (parenthesized_expression "((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0))" (( "(") (binary_expression "(((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&\n            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)" (parenthesized_expression "(((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0))" (( "(") (binary_expression "((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)" (parenthesized_expression "((param_2 & 2) == 0)" (( "(") (binary_expression "(param_2 & 2) == 0" (parenthesized_expression "(param_2 & 2)" (( "(") (binary_expression "param_2 & 2" (identifier "param_2") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)" (( "(") (comma_expression "pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0" (assignment_expression "pcVar7 = (char *)param_1[2]" (identifier "pcVar7") (= "=") (cast_expression "(char *)param_1[2]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (, ",") (binary_expression "pcVar7 != (char *)0x0" (identifier "pcVar7") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)" (( "(") (comma_expression "pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strpbrk(pcVar7,"?*[")" (identifier "pcVar4") (= "=") (call_expression "strpbrk(pcVar7,"?*[")" (identifier "strpbrk") (argument_list "(pcVar7,"?*[")" (( "(") (identifier "pcVar7") (, ",") (string_literal ""?*["" (" """) (string_content "?*[") (" """)) () ")")))) (, ",") (binary_expression "pcVar4 == (char *)0x0" (identifier "pcVar4") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))" (( "(") (parenthesized_expression "(DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0))" (( "(") (binary_expression "DAT_00084bca == '\0' ||\n            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)" (binary_expression "DAT_00084bca == '\0'" (identifier "DAT_00084bca") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)" (( "(") (comma_expression "pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0" (assignment_expression "pcVar7 = strchr(pcVar7,(int)DAT_00084bca)" (identifier "pcVar7") (= "=") (call_expression "strchr(pcVar7,(int)DAT_00084bca)" (identifier "strchr") (argument_list "(pcVar7,(int)DAT_00084bca)" (( "(") (identifier "pcVar7") (, ",") (cast_expression "(int)DAT_00084bca" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_00084bca")) () ")")))) (, ",") (binary_expression "pcVar7 == (char *)0x0" (identifier "pcVar7") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          FUN_00025b30();\n        }" ({ "{") (expression_statement "FUN_00025b30();" (call_expression "FUN_00025b30()" (identifier "FUN_00025b30") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" (identifier "FUN_00026210") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:\n        DAT_00084810 = param_1[2];\n        param_1 = (int *)*param_1;\n        break;" (case "case") (number_literal "10") (: ":") (expression_statement "DAT_00084810 = param_1[2];" (assignment_expression "DAT_00084810 = param_1[2]" (identifier "DAT_00084810") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xd:\n        uVar3 = param_2 | 1;\n        iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);\n        goto LAB_00026270;" (case "case") (number_literal "0xd") (: ":") (expression_statement "uVar3 = param_2 | 1;" (assignment_expression "uVar3 = param_2 | 1" (identifier "uVar3") (= "=") (binary_expression "param_2 | 1" (identifier "param_2") (| "|") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = *(int *)(DAT_00084be0 + 0x20);" (assignment_expression "iVar9 = *(int *)(DAT_00084be0 + 0x20)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" (* "*") (cast_expression "(int *)(DAT_00084be0 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084be0 + 0x20)" (( "(") (binary_expression "DAT_00084be0 + 0x20" (identifier "DAT_00084be0") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (do_statement "do {\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        } while (bVar10);" (do "do") (compound_statement "{\n          FUN_00026210(param_2,uVar3);\n          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;\n          iVar9 = *(int *)(DAT_00084be0 + 0x20);\n        }" ({ "{") (expression_statement "FUN_00026210(param_2,uVar3);" (call_expression "FUN_00026210(param_2,uVar3)" (identifier "FUN_00026210") (argument_list "(param_2,uVar3)" (( "(") (identifier "param_2") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;" (assignment_expression "bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9" (identifier "bVar10") (= "=") (binary_expression "*(int *)(DAT_00084be0 + 0x20) != iVar9" (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" (* "*") (cast_expression "(int *)(DAT_00084be0 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084be0 + 0x20)" (( "(") (binary_expression "DAT_00084be0 + 0x20" (identifier "DAT_00084be0") (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (identifier "iVar9"))) (; ";")) (expression_statement "iVar9 = *(int *)(DAT_00084be0 + 0x20);" (assignment_expression "iVar9 = *(int *)(DAT_00084be0 + 0x20)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(DAT_00084be0 + 0x20)" (* "*") (cast_expression "(int *)(DAT_00084be0 + 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00084be0 + 0x20)" (( "(") (binary_expression "DAT_00084be0 + 0x20" (identifier "DAT_00084be0") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar10)" (( "(") (identifier "bVar10") () ")")) (; ";")) (goto_statement "goto LAB_00026270;" (goto "goto") (statement_identifier "LAB_00026270") (; ";"))) (case_statement "case 0xf:\n        FUN_00026210();\n        param_1 = (int *)*param_1;" (case "case") (number_literal "0xf") (: ":") (expression_statement "FUN_00026210();" (call_expression "FUN_00026210()" (identifier "FUN_00026210") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "param_1 = (int *)*param_1;" (assignment_expression "param_1 = (int *)*param_1" (identifier "param_1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(param_1 != (int *)0x0)" (( "(") (binary_expression "param_1 != (int *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((DAT_00084b70._1_1_ & 8) == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "((DAT_00084b70._1_1_ & 8) == 0)" (( "(") (binary_expression "(DAT_00084b70._1_1_ & 8) == 0" (parenthesized_expression "(DAT_00084b70._1_1_ & 8)" (( "(") (binary_expression "DAT_00084b70._1_1_ & 8" (field_expression "DAT_00084b70._1_1_" (identifier "DAT_00084b70") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00032b30(&DAT_0004d0a0);" (call_expression "FUN_00032b30(&DAT_0004d0a0)" (identifier "FUN_00032b30") (argument_list "(&DAT_0004d0a0)" (( "(") (pointer_expression "&DAT_0004d0a0" (& "&") (identifier "DAT_0004d0a0")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 *var_1,type_2 var_4)

{
  type_3 *tree;
  char *var_15;
  type_4 *var_8;
  type_5 p_Var3;
  type_6 *plVar4;
  type_3 **var_12;
  char *var_17;
  type_7 var_11;
  type_8 var_9;
  type_9 *var_21;
  bool bVar10;
  type_6 add;
  
  if (var_1 != (type_1 *)0x0) {
    do {
      switch((var_1->header).type) {
      case lang_output_section_statement_enum:
        function_1((var_1->output_section_statement).children.head,var_4);
        var_1 = (var_1->header).next;
        break;
      case lang_assignment_statement_enum:
        tree = (var_1->output_section_statement).children.head;
        if ((tree->wild_statement).filenames_sorted != var_2) {
          var_3((type_10 *)tree);
        }
      default:
_L2353:
        var_1 = (var_1->header).next;
        break;
      case lang_input_statement_enum:
        p_Var3 = (var_1->wild_statement).walk_wild_section_handler;
        if (((type_11)p_Var3 & 0x400) != 0) {
          (var_1->input_statement).target = current_target;
          if (((var_4 != var_5) &&
              (((var_4 & var_6) == var_5 ||
               (var_7 == (type_12 *)0x0)))) &&
             ((((type_11)p_Var3 & 0x200) != 0 &&
              (var_8 = (var_1->reloc_statement).section, var_8 != (type_4 *)0x0)))) {
            var_9 = *(type_8 *)((int)&var_8->lma + 4) & 7;
            if (var_9 == 2) {
              if (((type_11)p_Var3 & 0x100) == 0) goto LAB_000264c8;
            }
            else if ((((var_9 == 1) && ((var_8->lma & 0x80000000000) != 0)) &&
                     (*(char *)&(var_1->wild_statement).walk_wild_section_handler < '\0')) &&
                    ((*(int *)(var_8->id + 4) == 5 &&
                     ((*(type_8 *)(var_8->target_index + 0x9b8) & 0x40) != 0)))) {
LAB_000264c8:
              *(type_8 *)((int)&(var_1->wild_statement).walk_wild_section_handler + 1) =
                   *(type_8 *)((int)&(var_1->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10;
            }
          }
          var_12 = lang_output_section_statement.tail;
          add.head = (type_3 *)0x0;
          add.tail = &add.head;
          var_11 = var_10(&var_1->input_statement,(type_6 *)add.tail);
          if (var_11 == 0) {
            config.make_executable = 0;
          }
          if (add.head != (type_3 *)0x0) {
            if (lang_output_section_statement.tail == var_12) {
              *add.tail = (var_1->header).next;
              (var_1->header).next = add.head;
            }
            else {
              var_15 = (var_1->wild_statement).filename;
              var_17 = (char *)var_13(0,
                                         "%P: warning: %s contains output sections; did you forget -T?\n"
                                         ,5);
              var_14(var_17,var_15);
              plVar4 = stat_ptr;
              *stat_ptr->tail = add.head;
              plVar4->tail = add.tail;
            }
          }
        }
        if ((type_1 *)var_7 != var_1) goto _L2353;
        var_7 = (type_12 *)0x0;
        var_1 = (var_1->header).next;
        break;
      case lang_wild_statement_enum:
        if (((((var_4 & var_6) == var_5) &&
             (var_15 = (var_1->wild_statement).filename, var_15 != (char *)0x0)) &&
            (var_17 = var_16(var_15,"?*["), var_17 == (char *)0x0)) &&
           ((link_info.path_separator == '\0' ||
            (var_17 = var_18(var_15,(int)link_info.path_separator), var_17 == (char *)0x0)))) {
          var_19(var_15);
        }
        function_1((var_1->wild_statement).children.head,var_4);
        var_1 = (var_1->header).next;
        break;
      case lang_target_statement_enum:
        current_target = (var_1->wild_statement).filename;
        var_1 = (var_1->header).next;
        break;
      case lang_group_statement_enum:
        var_21 = (link_info.hash)->undefs_tail;
        do {
          function_1((var_1->output_section_statement).children.head,var_4 | var_20);
          bVar10 = (link_info.hash)->undefs_tail != var_21;
          var_21 = (link_info.hash)->undefs_tail;
        } while (bVar10);
        goto _L2353;
      case lang_constructors_statement_enum:
        function_1(constructor_list.head,var_4);
        var_1 = (var_1->header).next;
      }
    } while (var_1 != (type_3 *)0x0);
  }
  if ((input_flags._1_1_ & 8) == 0) {
    return;
  }
  var_14("%F");
  return;
}


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

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

void __regparm3 MASKED(int *param_1,uint param_2)

{
  byte bVar1;
  undefined *puVar2;
  uint uVar3;
  char *pcVar4;
  int iVar5;
  undefined4 uVar6;
  char *pcVar7;
  byte bVar8;
  int iVar9;
  bool bVar10;
  int iStack_24;
  int *piStack_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x26219;
  if (param_1 != (int *)0x0) {
    do {
      switch(param_1[1]) {
      case 0:
        MASKED();
        param_1 = (int *)*param_1;
        break;
      case 1:
        if (*(int *)(param_1[2] + 0xc) != 8) {
          FUN_000308a0(param_1[2]);
        }
      default:
LAB_00026270:
        param_1 = (int *)*param_1;
        break;
      case 2:
        bVar1 = *(byte *)((int)param_1 + 0x25);
        if ((bVar1 & 4) != 0) {
          param_1[8] = DAT_00084810;
          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_000847a0 == (int *)0x0)))) &&
             (((bVar1 & 2) != 0 && (iVar9 = param_1[4], iVar9 != 0)))) {
            bVar8 = *(byte *)(iVar9 + 0x28) & 7;
            if (bVar8 == 2) {
              if ((bVar1 & 1) == 0) goto code_r0x000264c8;
            }
            else if ((((bVar8 == 1) && ((*(byte *)(iVar9 + 0x29) & 8) != 0)) &&
                     ((char)param_1[9] < '\0')) &&
                    ((*(int *)(*(int *)(iVar9 + 4) + 4) == 5 &&
                     ((*(byte *)(*(int *)(iVar9 + 0xa0) + 0x9b8) & 0x40) != 0)))) {
code_r0x000264c8:
              *(byte *)((int)param_1 + 0x25) = *(byte *)((int)param_1 + 0x25) & 0xed | 0x10;
            }
          }
          iVar9 = DAT_00084b84;
          iStack_24 = 0;
          piStack_20 = &iStack_24;
          iVar5 = FUN_00025570(param_1,piStack_20);
          if (iVar5 == 0) {
            DAT_00084cc4 = 0;
          }
          if (iStack_24 != 0) {
            if (DAT_00084b84 == iVar9) {
              *piStack_20 = *param_1;
              *param_1 = iStack_24;
            }
            else {
              iVar9 = param_1[2];
              uVar6 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5
                               );
              FUN_00032b30(uVar6,iVar9);
              puVar2 = PTR_DAT_00084318;
              **(int **)(PTR_DAT_00084318 + 4) = iStack_24;
              *(int **)(puVar2 + 4) = piStack_20;
            }
          }
        }
        if (DAT_000847a0 != param_1) goto LAB_00026270;
        DAT_000847a0 = (int *)0x0;
        param_1 = (int *)*param_1;
        break;
      case 4:
        if (((((param_2 & 2) == 0) && (pcVar7 = (char *)param_1[2], pcVar7 != (char *)0x0)) &&
            (pcVar4 = strpbrk(pcVar7,"?*["), pcVar4 == (char *)0x0)) &&
           ((DAT_00084bca == '\0' ||
            (pcVar7 = strchr(pcVar7,(int)DAT_00084bca), pcVar7 == (char *)0x0)))) {
          FUN_00025b30();
        }
        MASKED();
        param_1 = (int *)*param_1;
        break;
      case 10:
        DAT_00084810 = param_1[2];
        param_1 = (int *)*param_1;
        break;
      case 0xd:
        uVar3 = param_2 | 1;
        iVar9 = *(int *)(DAT_00084be0 + 0x20);
        do {
          MASKED(param_2,uVar3);
          bVar10 = *(int *)(DAT_00084be0 + 0x20) != iVar9;
          iVar9 = *(int *)(DAT_00084be0 + 0x20);
        } while (bVar10);
        goto LAB_00026270;
      case 0xf:
        MASKED();
        param_1 = (int *)*param_1;
      }
    } while (param_1 != (int *)0x0);
  }
  if ((DAT_00084b70._1_1_ & 8) == 0) {
    return;
  }
  FUN_00032b30(&DAT_0004d0a0);
  return;
}

