
void open_input_bfds(lang_statement_union_type *s,open_bfd_mode mode)

{
  lang_statement_union *tree;
  char *pcVar1;
  bfd *pbVar2;
  walk_wild_section_handler_t p_Var3;
  lang_statement_list_type *plVar4;
  lang_statement_union **pplVar5;
  bfd_boolean bVar6;
  char *pcVar7;
  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->data_statement).type != etree_assert) {
          exp_fold_tree_no_dot((etree_type *)tree);
        }
      default:
switchD_0011dae9_caseD_3:
        s = (s->header).next;
        break;
      case lang_input_statement_enum:
        p_Var3 = (s->wild_statement).walk_wild_section_handler;
        if (((ulong)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)))) &&
             ((((ulong)p_Var3 & 0x200) != 0 &&
              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {
            bVar8 = pbVar2->field_0x44 & 7;
            if (bVar8 == 2) {
              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;
            }
            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&
                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&
                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&
                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {
LAB_0011dd75:
              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =
                   *(byte *)((long)&(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;
          bVar6 = load_symbols(&s->input_statement,&add);
          if (bVar6 == 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;
              pcVar7 = (char *)dcgettext(0,
                                         "%P: warning: %s contains output sections; did you forget -T?\n"
                                         ,5);
              einfo(pcVar7,pcVar1);
              plVar4 = stat_ptr;
              *stat_ptr->tail = add.head;
              plVar4->tail = add.tail;
            }
          }
        }
        if ((lang_statement_union_type *)plugin_insert != s) goto switchD_0011dae9_caseD_3;
        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)) &&
            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&
           ((link_info.path_separator == '\0' ||
            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;
      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;
}



void FUN_0011daa0(long *param_1,uint param_2)

{
  byte bVar1;
  char *__s;
  undefined *puVar2;
  int iVar3;
  char *pcVar4;
  undefined8 uVar5;
  byte bVar6;
  long lVar7;
  bool bVar8;
  long local_48;
  long *local_40;
  
  if (param_1 != (long *)0x0) {
    do {
      switch((int)param_1[1]) {
      case 0:
        FUN_0011daa0(param_1[2],param_2);
        param_1 = (long *)*param_1;
        break;
      case 1:
        if (*(int *)(param_1[2] + 0x10) != 8) {
          FUN_001272e0();
        }
      default:
switchD_0011dae9_caseD_3:
        param_1 = (long *)*param_1;
        break;
      case 2:
        bVar1 = *(byte *)((long)param_1 + 0x49);
        if ((bVar1 & 4) != 0) {
          param_1[8] = DAT_002b4da0;
          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&
             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {
            bVar6 = *(byte *)(lVar7 + 0x44) & 7;
            if (bVar6 == 2) {
              if ((bVar1 & 1) == 0) goto LAB_0011dd75;
            }
            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&
                     ((char)param_1[9] < '\0')) &&
                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&
                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {
LAB_0011dd75:
              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;
            }
          }
          lVar7 = DAT_002b5ee8;
          local_48 = 0;
          local_40 = &local_48;
          iVar3 = FUN_0011ce80(param_1,&local_48);
          if (iVar3 == 0) {
            DAT_002b60c4 = 0;
          }
          if (local_48 != 0) {
            if (DAT_002b5ee8 == lVar7) {
              *local_40 = *param_1;
              *param_1 = local_48;
            }
            else {
              lVar7 = param_1[2];
              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5
                               );
              FUN_00129380(uVar5,lVar7);
              puVar2 = PTR_DAT_002b2710;
              **(long **)(PTR_DAT_002b2710 + 8) = local_48;
              *(long **)(puVar2 + 8) = local_40;
            }
          }
        }
        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;
        DAT_002b4ce0 = (long *)0x0;
        param_1 = (long *)*param_1;
        break;
      case 4:
        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&
            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&
           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)
            ))) {
          FUN_0011d390(__s);
        }
        FUN_0011daa0(param_1[6],param_2);
        param_1 = (long *)*param_1;
        break;
      case 10:
        DAT_002b4da0 = param_1[2];
        param_1 = (long *)*param_1;
        break;
      case 0xd:
        lVar7 = *(long *)(DAT_002b5f68 + 0x30);
        do {
          FUN_0011daa0(param_1[2],param_2 | 1);
          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;
          lVar7 = *(long *)(DAT_002b5f68 + 0x30);
        } while (bVar8);
        goto switchD_0011dae9_caseD_3;
      case 0xf:
        FUN_0011daa0(DAT_002b5f00,param_2);
        param_1 = (long *)*param_1;
      }
    } while (param_1 != (long *)0x0);
  }
  if ((DAT_002b5ec1 & 8) == 0) {
    return;
  }
  FUN_00129380(&DAT_0016c2c3);
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x28
TEST RDI,RDI
JZ 0x0011db08
LEA RAX,[RSP + 0x10]
MOV R14D,ESI
MOV R13D,ESI
MOV R15,RDI
MOV qword ptr [RSP + 0x8],RAX
MOV EBP,ESI
AND R14D,0x2
OR R13D,0x1
LEA RBX,[0x16be28]
CMP dword ptr [R15 + 0x8],0xf
JA 0x0011db00
MOV EAX,dword ptr [R15 + 0x8]
MOVSXD RAX,dword ptr [RBX + RAX*0x4]
ADD RAX,RBX
JMP RAX
MOV RDI,qword ptr [R15 + 0x10]
CMP dword ptr [RDI + 0x10],0x8
JZ 0x0011db00
CALL 0x001272e0
NOP
MOV R15,qword ptr [R15]
TEST R15,R15
JNZ 0x0011dad7
TEST byte ptr [0x002b5ec1],0x8
JNZ 0x0011dcf0
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,qword ptr [0x002b5f00]
MOV ESI,EBP
CALL 0x0011daa0
MOV R15,qword ptr [R15]
TEST R15,R15
JNZ 0x0011dad7
JMP 0x0011db08
MOV RAX,qword ptr [0x002b5f68]
MOV R12,qword ptr [RAX + 0x30]
MOV RDI,qword ptr [R15 + 0x10]
MOV ESI,R13D
CALL 0x0011daa0
MOV RAX,qword ptr [0x002b5f68]
MOV RAX,qword ptr [RAX + 0x30]
CMP RAX,R12
JZ 0x0011db00
MOV R12,RAX
JMP 0x0011db4b
MOV RAX,qword ptr [R15 + 0x10]
MOV R15,qword ptr [R15]
MOV qword ptr [0x002b4da0],RAX
TEST R15,R15
JNZ 0x0011dad7
JMP 0x0011db08
TEST R14D,R14D
JNZ 0x0011dbb6
MOV R12,qword ptr [R15 + 0x10]
TEST R12,R12
JZ 0x0011dbb6
LEA RSI,[0x16c1a1]
MOV RDI,R12
CALL 0x0010d8e0
TEST RAX,RAX
JZ 0x0011ddb0
MOV RDI,qword ptr [R15 + 0x30]
MOV ESI,EBP
CALL 0x0011daa0
MOV R15,qword ptr [R15]
TEST R15,R15
JNZ 0x0011dad7
JMP 0x0011db08
MOVZX EAX,byte ptr [R15 + 0x49]
TEST AL,0x4
JZ 0x0011dca0
MOV RDX,qword ptr [0x002b4da0]
MOV qword ptr [R15 + 0x40],RDX
TEST EBP,EBP
JZ 0x0011dc10
TEST R14D,R14D
JZ 0x0011dd10
CMP qword ptr [0x002b4ce0],0x0
JZ 0x0011dd10
NOP dword ptr [RAX + RAX*0x1]
MOV RAX,qword ptr [RSP + 0x8]
MOV RDI,R15
MOV R12,qword ptr [0x002b5ee8]
MOV qword ptr [RSP + 0x10],0x0
MOV RSI,RAX
MOV qword ptr [RSP + 0x18],RAX
CALL 0x0011ce80
TEST EAX,EAX
JNZ 0x0011dc43
MOV dword ptr [0x002b60c4],0x0
CMP qword ptr [RSP + 0x10],0x0
JZ 0x0011dca0
CMP qword ptr [0x002b5ee8],R12
JZ 0x0011dd90
MOV EDX,0x5
MOV R12,qword ptr [R15 + 0x10]
LEA RSI,[0x16cb40]
XOR EDI,EDI
CALL 0x0010d300
MOV RDI,RAX
MOV RSI,R12
XOR EAX,EAX
CALL 0x00129380
MOV RAX,qword ptr [0x002b2710]
MOV RSI,qword ptr [RSP + 0x10]
MOV RDX,qword ptr [RAX + 0x8]
MOV qword ptr [RDX],RSI
MOV RDX,qword ptr [RSP + 0x18]
MOV qword ptr [RAX + 0x8],RDX
NOP dword ptr [RAX + RAX*0x1]
CMP qword ptr [0x002b4ce0],R15
JNZ 0x0011db00
MOV qword ptr [0x002b4ce0],0x0
MOV R15,qword ptr [R15]
TEST R15,R15
JNZ 0x0011dad7
JMP 0x0011db08
MOV RDI,qword ptr [R15 + 0x10]
MOV ESI,EBP
CALL 0x0011daa0
MOV R15,qword ptr [R15]
TEST R15,R15
JNZ 0x0011dad7
JMP 0x0011db08
LEA RDI,[0x16c2c3]
XOR EAX,EAX
CALL 0x00129380
ADD RSP,0x28
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
TEST AL,0x2
JZ 0x0011dc10
MOV RSI,qword ptr [R15 + 0x20]
TEST RSI,RSI
JZ 0x0011dc10
MOVZX EDX,byte ptr [RSI + 0x44]
AND EDX,0x7
CMP DL,0x2
JZ 0x0011dddc
CMP DL,0x1
JNZ 0x0011dc10
TEST byte ptr [RSI + 0x45],0x8
JZ 0x0011dc10
CMP byte ptr [R15 + 0x48],0x0
JNS 0x0011dc10
MOV RAX,qword ptr [RSI + 0x8]
CMP dword ptr [RAX + 0x8],0x5
JNZ 0x0011dc10
MOV RAX,qword ptr [RSI + 0xf8]
TEST byte ptr [RAX + 0xc8c],0x40
JZ 0x0011dc10
MOVZX EAX,byte ptr [R15 + 0x49]
AND EAX,0xffffffed
OR EAX,0x10
MOV byte ptr [R15 + 0x49],AL
JMP 0x0011dc10
MOV RAX,qword ptr [RSP + 0x18]
MOV RDX,qword ptr [R15]
MOV qword ptr [RAX],RDX
MOV RAX,qword ptr [RSP + 0x10]
MOV qword ptr [R15],RAX
JMP 0x0011dca0
MOVZX EAX,byte ptr [0x002b5f4a]
TEST AL,AL
JZ 0x0011ddcf
MOVSX ESI,AL
MOV RDI,R12
CALL 0x0010d3a0
TEST RAX,RAX
JNZ 0x0011dbb6
MOV RDI,R12
CALL 0x0011d390
JMP 0x0011dbb6
TEST AL,0x1
JZ 0x0011dd75
JMP 0x0011dc10
(translation_unit "void FUN_0011daa0(long *param_1,uint param_2)\n\n{\n  byte bVar1;\n  char *__s;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  byte bVar6;\n  long lVar7;\n  bool bVar8;\n  long local_48;\n  long *local_40;\n  \n  if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }\n  if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }\n  FUN_00129380(&DAT_0016c2c3);\n  return;\n}\n\n" (function_definition "void FUN_0011daa0(long *param_1,uint param_2)\n\n{\n  byte bVar1;\n  char *__s;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  byte bVar6;\n  long lVar7;\n  bool bVar8;\n  long local_48;\n  long *local_40;\n  \n  if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }\n  if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }\n  FUN_00129380(&DAT_0016c2c3);\n  return;\n}" primitive_type (function_declarator "FUN_0011daa0(long *param_1,uint param_2)" identifier (parameter_list "(long *param_1,uint param_2)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char *__s;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  byte bVar6;\n  long lVar7;\n  bool bVar8;\n  long local_48;\n  long *local_40;\n  \n  if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }\n  if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }\n  FUN_00129380(&DAT_0016c2c3);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "long *local_40;" (sized_type_specifier "long" long) (pointer_declarator "*local_40" * identifier) ;) (if_statement "if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }" if (parenthesized_expression "(param_1 != (long *)0x0)" ( (binary_expression "param_1 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }" { (do_statement "do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);" do (compound_statement "{\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    }" { (switch_statement "switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }" switch (parenthesized_expression "((int)param_1[1])" ( (cast_expression "(int)param_1[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (compound_statement "{\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }" { (case_statement "case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;" case number_literal : (expression_statement "FUN_0011daa0(param_1[2],param_2);" (call_expression "FUN_0011daa0(param_1[2],param_2)" identifier (argument_list "(param_1[2],param_2)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }" case number_literal : (if_statement "if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }" if (parenthesized_expression "(*(int *)(param_1[2] + 0x10) != 8)" ( (binary_expression "*(int *)(param_1[2] + 0x10) != 8" (pointer_expression "*(int *)(param_1[2] + 0x10)" * (cast_expression "(int *)(param_1[2] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x10)" ( (binary_expression "param_1[2] + 0x10" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n          FUN_001272e0();\n        }" { (expression_statement "FUN_001272e0();" (call_expression "FUN_001272e0()" identifier (argument_list "()" ( ))) ;) }))) (case_statement "default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;" default : (labeled_statement "switchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;" statement_identifier : (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;" case number_literal : (expression_statement "bVar1 = *(byte *)((long)param_1 + 0x49);" (assignment_expression "bVar1 = *(byte *)((long)param_1 + 0x49)" identifier = (pointer_expression "*(byte *)((long)param_1 + 0x49)" * (cast_expression "(byte *)((long)param_1 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x49)" ( (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\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_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }" { (expression_statement "param_1[8] = DAT_002b4da0;" (assignment_expression "param_1[8] = DAT_002b4da0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }" if (parenthesized_expression "(((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0))))" ( (binary_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))" (parenthesized_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0))))" ( (binary_expression "(param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))" ( (parenthesized_expression "((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0))" ( (binary_expression "(param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)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_002b4ce0 == (long *)0x0)" ( (binary_expression "DAT_002b4ce0 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) && (parenthesized_expression "(((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))" ( (parenthesized_expression "((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0))" ( (binary_expression "(bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)" (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(lVar7 = param_1[4], lVar7 != 0)" ( (comma_expression "lVar7 = param_1[4], lVar7 != 0" (assignment_expression "lVar7 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) , (binary_expression "lVar7 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }" { (expression_statement "bVar6 = *(byte *)(lVar7 + 0x44) & 7;" (assignment_expression "bVar6 = *(byte *)(lVar7 + 0x44) & 7" identifier = (binary_expression "*(byte *)(lVar7 + 0x44) & 7" (pointer_expression "*(byte *)(lVar7 + 0x44)" * (cast_expression "(byte *)(lVar7 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x44)" ( (binary_expression "lVar7 + 0x44" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" if (parenthesized_expression "(bVar6 == 2)" ( (binary_expression "bVar6 == 2" identifier == number_literal) )) (compound_statement "{\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }" { (if_statement "if ((bVar1 & 1) == 0) goto LAB_0011dd75;" 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 LAB_0011dd75;" goto statement_identifier ;)) }) (else_clause "else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" else (if_statement "if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" if (parenthesized_expression "((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0))))" ( (binary_expression "(((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))" (parenthesized_expression "(((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0'))" ( (binary_expression "((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')" (parenthesized_expression "((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0))" ( (binary_expression "(bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)" (parenthesized_expression "(bVar6 == 1)" ( (binary_expression "bVar6 == 1" identifier == number_literal) )) && (parenthesized_expression "((*(byte *)(lVar7 + 0x45) & 8) != 0)" ( (binary_expression "(*(byte *)(lVar7 + 0x45) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar7 + 0x45) & 8)" ( (binary_expression "*(byte *)(lVar7 + 0x45) & 8" (pointer_expression "*(byte *)(lVar7 + 0x45)" * (cast_expression "(byte *)(lVar7 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x45)" ( (binary_expression "lVar7 + 0x45" 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 *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))" ( (parenthesized_expression "(*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0))" ( (binary_expression "*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)" (binary_expression "*(int *)(*(long *)(lVar7 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(lVar7 + 8) + 8)" * (cast_expression "(int *)(*(long *)(lVar7 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar7 + 8) + 8)" ( (binary_expression "*(long *)(lVar7 + 8) + 8" (pointer_expression "*(long *)(lVar7 + 8)" * (cast_expression "(long *)(lVar7 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) && (parenthesized_expression "((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)" ( (binary_expression "(*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40)" ( (binary_expression "*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40" (pointer_expression "*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c)" * (cast_expression "(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar7 + 0xf8) + 0xc8c)" ( (binary_expression "*(long *)(lVar7 + 0xf8) + 0xc8c" (pointer_expression "*(long *)(lVar7 + 0xf8)" * (cast_expression "(long *)(lVar7 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xf8)" ( (binary_expression "lVar7 + 0xf8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" { (labeled_statement "LAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;" statement_identifier : (expression_statement "*(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;" (assignment_expression "*(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10" (pointer_expression "*(byte *)((long)param_1 + 0x49)" * (cast_expression "(byte *)((long)param_1 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x49)" ( (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_1 + 0x49) & 0xed | 0x10" (binary_expression "*(byte *)((long)param_1 + 0x49) & 0xed" (pointer_expression "*(byte *)((long)param_1 + 0x49)" * (cast_expression "(byte *)((long)param_1 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x49)" ( (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | number_literal)) ;)) })))) })) (expression_statement "lVar7 = DAT_002b5ee8;" (assignment_expression "lVar7 = DAT_002b5ee8" identifier = identifier) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_40 = &local_48;" (assignment_expression "local_40 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "iVar3 = FUN_0011ce80(param_1,&local_48);" (assignment_expression "iVar3 = FUN_0011ce80(param_1,&local_48)" identifier = (call_expression "FUN_0011ce80(param_1,&local_48)" identifier (argument_list "(param_1,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            DAT_002b60c4 = 0;\n          }" { (expression_statement "DAT_002b60c4 = 0;" (assignment_expression "DAT_002b60c4 = 0" identifier = number_literal) ;) })) (if_statement "if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }" { (if_statement "if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" if (parenthesized_expression "(DAT_002b5ee8 == lVar7)" ( (binary_expression "DAT_002b5ee8 == lVar7" identifier == identifier) )) (compound_statement "{\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }" { (expression_statement "*local_40 = *param_1;" (assignment_expression "*local_40 = *param_1" (pointer_expression "*local_40" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = local_48;" (assignment_expression "*param_1 = local_48" (pointer_expression "*param_1" * identifier) = identifier) ;) }) (else_clause "else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" else (compound_statement "{\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" { (expression_statement "lVar7 = param_1[2];" (assignment_expression "lVar7 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );" (assignment_expression "uVar5 = 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_00129380(uVar5,lVar7);" (call_expression "FUN_00129380(uVar5,lVar7)" identifier (argument_list "(uVar5,lVar7)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_DAT_002b2710;" (assignment_expression "puVar2 = PTR_DAT_002b2710" identifier = identifier) ;) (expression_statement "**(long **)(PTR_DAT_002b2710 + 8) = local_48;" (assignment_expression "**(long **)(PTR_DAT_002b2710 + 8) = local_48" (pointer_expression "**(long **)(PTR_DAT_002b2710 + 8)" * (pointer_expression "*(long **)(PTR_DAT_002b2710 + 8)" * (cast_expression "(long **)(PTR_DAT_002b2710 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_002b2710 + 8)" ( (binary_expression "PTR_DAT_002b2710 + 8" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(long **)(puVar2 + 8) = local_40;" (assignment_expression "*(long **)(puVar2 + 8) = local_40" (pointer_expression "*(long **)(puVar2 + 8)" * (cast_expression "(long **)(puVar2 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) )))) = identifier) ;) }))) })) })) (if_statement "if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;" if (parenthesized_expression "(DAT_002b4ce0 != param_1)" ( (binary_expression "DAT_002b4ce0 != param_1" identifier != identifier) )) (goto_statement "goto switchD_0011dae9_caseD_3;" goto statement_identifier ;)) (expression_statement "DAT_002b4ce0 = (long *)0x0;" (assignment_expression "DAT_002b4ce0 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;" case number_literal : (if_statement "if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }" if (parenthesized_expression "(((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            )))" ( (binary_expression "((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))" (parenthesized_expression "((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0))" ( (binary_expression "(((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)" (parenthesized_expression "(((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0))" ( (binary_expression "((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (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 "(__s = (char *)param_1[2], __s != (char *)0x0)" ( (comma_expression "__s = (char *)param_1[2], __s != (char *)0x0" (assignment_expression "__s = (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 "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)" ( (comma_expression "pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strpbrk(__s,"?*[")" identifier = (call_expression "strpbrk(__s,"?*[")" identifier (argument_list "(__s,"?*[")" ( 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_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))" ( (parenthesized_expression "(DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            )" ( (binary_expression "DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)" (binary_expression "DAT_002b5f4a == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)" ( (comma_expression "pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strchr(__s,(int)DAT_002b5f4a)" identifier = (call_expression "strchr(__s,(int)DAT_002b5f4a)" identifier (argument_list "(__s,(int)DAT_002b5f4a)" ( identifier , (cast_expression "(int)DAT_002b5f4a" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n          FUN_0011d390(__s);\n        }" { (expression_statement "FUN_0011d390(__s);" (call_expression "FUN_0011d390(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) })) (expression_statement "FUN_0011daa0(param_1[6],param_2);" (call_expression "FUN_0011daa0(param_1[6],param_2)" identifier (argument_list "(param_1[6],param_2)" ( (subscript_expression "param_1[6]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;" case number_literal : (expression_statement "DAT_002b4da0 = param_1[2];" (assignment_expression "DAT_002b4da0 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;" case number_literal : (expression_statement "lVar7 = *(long *)(DAT_002b5f68 + 0x30);" (assignment_expression "lVar7 = *(long *)(DAT_002b5f68 + 0x30)" identifier = (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" * (cast_expression "(long *)(DAT_002b5f68 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f68 + 0x30)" ( (binary_expression "DAT_002b5f68 + 0x30" identifier + number_literal) ))))) ;) (do_statement "do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);" do (compound_statement "{\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        }" { (expression_statement "FUN_0011daa0(param_1[2],param_2 | 1);" (call_expression "FUN_0011daa0(param_1[2],param_2 | 1)" identifier (argument_list "(param_1[2],param_2 | 1)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (binary_expression "param_2 | 1" identifier | number_literal) ))) ;) (expression_statement "bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;" (assignment_expression "bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7" identifier = (binary_expression "*(long *)(DAT_002b5f68 + 0x30) != lVar7" (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" * (cast_expression "(long *)(DAT_002b5f68 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f68 + 0x30)" ( (binary_expression "DAT_002b5f68 + 0x30" identifier + number_literal) )))) != identifier)) ;) (expression_statement "lVar7 = *(long *)(DAT_002b5f68 + 0x30);" (assignment_expression "lVar7 = *(long *)(DAT_002b5f68 + 0x30)" identifier = (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" * (cast_expression "(long *)(DAT_002b5f68 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f68 + 0x30)" ( (binary_expression "DAT_002b5f68 + 0x30" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (goto_statement "goto switchD_0011dae9_caseD_3;" goto statement_identifier ;)) (case_statement "case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;" case number_literal : (expression_statement "FUN_0011daa0(DAT_002b5f00,param_2);" (call_expression "FUN_0011daa0(DAT_002b5f00,param_2)" identifier (argument_list "(DAT_002b5f00,param_2)" ( identifier , identifier ))) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;)) })) }) while (parenthesized_expression "(param_1 != (long *)0x0)" ( (binary_expression "param_1 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }" if (parenthesized_expression "((DAT_002b5ec1 & 8) == 0)" ( (binary_expression "(DAT_002b5ec1 & 8) == 0" (parenthesized_expression "(DAT_002b5ec1 & 8)" ( (binary_expression "DAT_002b5ec1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00129380(&DAT_0016c2c3);" (call_expression "FUN_00129380(&DAT_0016c2c3)" identifier (argument_list "(&DAT_0016c2c3)" ( (pointer_expression "&DAT_0016c2c3" & identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void open_input_bfds(lang_statement_union_type *s,open_bfd_mode mode)\n\n{\n  lang_statement_union *tree;\n  char *pcVar1;\n  bfd *pbVar2;\n  walk_wild_section_handler_t p_Var3;\n  lang_statement_list_type *plVar4;\n  lang_statement_union **pplVar5;\n  bfd_boolean bVar6;\n  char *pcVar7;\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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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" (function_definition "void open_input_bfds(lang_statement_union_type *s,open_bfd_mode mode)\n\n{\n  lang_statement_union *tree;\n  char *pcVar1;\n  bfd *pbVar2;\n  walk_wild_section_handler_t p_Var3;\n  lang_statement_list_type *plVar4;\n  lang_statement_union **pplVar5;\n  bfd_boolean bVar6;\n  char *pcVar7;\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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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 (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  bfd *pbVar2;\n  walk_wild_section_handler_t p_Var3;\n  lang_statement_list_type *plVar4;\n  lang_statement_union **pplVar5;\n  bfd_boolean bVar6;\n  char *pcVar7;\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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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 "bfd *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * 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 "bfd_boolean bVar6;" type_identifier identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * 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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }\n      default:\nswitchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 switchD_0011dae9_caseD_3;\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->data_statement).type != 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->data_statement).type != etree_assert) {\n          exp_fold_tree_no_dot((etree_type *)tree);\n        }" if (parenthesized_expression "((tree->data_statement).type != etree_assert)" ( (binary_expression "(tree->data_statement).type != etree_assert" (field_expression "(tree->data_statement).type" (parenthesized_expression "(tree->data_statement)" ( (field_expression "tree->data_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:\nswitchD_0011dae9_caseD_3:\n        s = (s->header).next;\n        break;" default : (labeled_statement "switchD_0011dae9_caseD_3:\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 switchD_0011dae9_caseD_3;\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 (((ulong)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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,pcVar1);\n              plVar4 = stat_ptr;\n              *stat_ptr->tail = add.head;\n              plVar4->tail = add.tail;\n            }\n          }\n        }" if (parenthesized_expression "(((ulong)p_Var3 & 0x400) != 0)" ( (binary_expression "((ulong)p_Var3 & 0x400) != 0" (parenthesized_expression "((ulong)p_Var3 & 0x400)" ( (binary_expression "(ulong)p_Var3 & 0x400" (cast_expression "(ulong)p_Var3" ( (type_descriptor "ulong" 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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }\n          pplVar5 = lang_output_section_statement.tail;\n          add.head = (lang_statement_union *)0x0;\n          add.tail = &add.head;\n          bVar6 = load_symbols(&s->input_statement,&add);\n          if (bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))) {\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\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             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0))))" ( (binary_expression "((mode != OPEN_BFD_NORMAL) &&\n              (((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL ||\n               (plugin_insert == (lang_input_statement_type *)0x0)))) &&\n             ((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)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 "((((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)))" ( (parenthesized_expression "(((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0))" ( (binary_expression "((ulong)p_Var3 & 0x200) != 0 &&\n              (pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)" (binary_expression "((ulong)p_Var3 & 0x200) != 0" (parenthesized_expression "((ulong)p_Var3 & 0x200)" ( (binary_expression "(ulong)p_Var3 & 0x200" (cast_expression "(ulong)p_Var3" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) != number_literal) && (parenthesized_expression "(pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0)" ( (comma_expression "pbVar2 = (s->input_statement).the_bfd, pbVar2 != (bfd *)0x0" (assignment_expression "pbVar2 = (s->input_statement).the_bfd" identifier = (field_expression "(s->input_statement).the_bfd" (parenthesized_expression "(s->input_statement)" ( (field_expression "s->input_statement" identifier -> field_identifier) )) . field_identifier)) , (binary_expression "pbVar2 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n            bVar8 = pbVar2->field_0x44 & 7;\n            if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }\n          }" { (expression_statement "bVar8 = pbVar2->field_0x44 & 7;" (assignment_expression "bVar8 = pbVar2->field_0x44 & 7" identifier = (binary_expression "pbVar2->field_0x44 & 7" (field_expression "pbVar2->field_0x44" identifier -> field_identifier) & number_literal)) ;) (if_statement "if (bVar8 == 2) {\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }" if (parenthesized_expression "(bVar8 == 2)" ( (binary_expression "bVar8 == 2" identifier == number_literal) )) (compound_statement "{\n              if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;\n            }" { (if_statement "if (((ulong)p_Var3 & 0x100) == 0) goto LAB_0011dd75;" if (parenthesized_expression "(((ulong)p_Var3 & 0x100) == 0)" ( (binary_expression "((ulong)p_Var3 & 0x100) == 0" (parenthesized_expression "((ulong)p_Var3 & 0x100)" ( (binary_expression "(ulong)p_Var3 & 0x100" (cast_expression "(ulong)p_Var3" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0011dd75;" goto statement_identifier ;)) }) (else_clause "else if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }" else (if_statement "if ((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }" if (parenthesized_expression "((((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0))))" ( (binary_expression "(((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')) &&\n                    ((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))" (parenthesized_expression "(((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0'))" ( (binary_expression "((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)) &&\n                     (*(char *)&(s->wild_statement).walk_wild_section_handler < '\0')" (parenthesized_expression "((bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0))" ( (binary_expression "(bVar8 == 1) && ((pbVar2->field_0x45 & 8) != 0)" (parenthesized_expression "(bVar8 == 1)" ( (binary_expression "bVar8 == 1" identifier == number_literal) )) && (parenthesized_expression "((pbVar2->field_0x45 & 8) != 0)" ( (binary_expression "(pbVar2->field_0x45 & 8) != 0" (parenthesized_expression "(pbVar2->field_0x45 & 8)" ( (binary_expression "pbVar2->field_0x45 & 8" (field_expression "pbVar2->field_0x45" 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 "((pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)))" ( (parenthesized_expression "(pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0))" ( (binary_expression "pbVar2->xvec->flavour == bfd_target_elf_flavour &&\n                     (((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)" (binary_expression "pbVar2->xvec->flavour == bfd_target_elf_flavour" (field_expression "pbVar2->xvec->flavour" (field_expression "pbVar2->xvec" identifier -> field_identifier) -> field_identifier) == identifier) && (parenthesized_expression "(((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0)" ( (binary_expression "((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40) != 0" (parenthesized_expression "((byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40)" ( (binary_expression "(byte)(pbVar2->tdata).aout_data[0xc8c] & 0x40" (subscript_expression "(byte)(pbVar2->tdata).aout_data[0xc8c]" (field_expression "(byte)(pbVar2->tdata).aout_data" (call_expression "(byte)(pbVar2->tdata)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar2->tdata)" ( (field_expression "pbVar2->tdata" identifier -> field_identifier) ))) . field_identifier) [ number_literal ]) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\nLAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;\n            }" { (labeled_statement "LAB_0011dd75:\n              *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;" statement_identifier : (expression_statement "*(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10\n              ;" (assignment_expression "*(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) =\n                   *(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10" (pointer_expression "*(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1)" * (cast_expression "(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(s->wild_statement).walk_wild_section_handler + 1)" ( (binary_expression "(long)&(s->wild_statement).walk_wild_section_handler + 1" (cast_expression "(long)&(s->wild_statement).walk_wild_section_handler" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (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 *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10" (binary_expression "*(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1) & 0xed" (pointer_expression "*(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1)" * (cast_expression "(byte *)((long)&(s->wild_statement).walk_wild_section_handler + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&(s->wild_statement).walk_wild_section_handler + 1)" ( (binary_expression "(long)&(s->wild_statement).walk_wild_section_handler + 1" (cast_expression "(long)&(s->wild_statement).walk_wild_section_handler" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (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 "bVar6 = load_symbols(&s->input_statement,&add);" (assignment_expression "bVar6 = load_symbols(&s->input_statement,&add)" identifier = (call_expression "load_symbols(&s->input_statement,&add)" identifier (argument_list "(&s->input_statement,&add)" ( (pointer_expression "&s->input_statement" & (field_expression "s->input_statement" identifier -> field_identifier)) , (pointer_expression "&add" & identifier) )))) ;) (if_statement "if (bVar6 == 0) {\n            config.make_executable = 0;\n          }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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              pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);\n              einfo(pcVar7,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 "pcVar7 = (char *)dcgettext(0,\n                                         "%P: warning: %s contains output sections; did you forget -T?\n"\n                                         ,5);" (assignment_expression "pcVar7 = (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(pcVar7,pcVar1);" (call_expression "einfo(pcVar7,pcVar1)" identifier (argument_list "(pcVar7,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 switchD_0011dae9_caseD_3;" 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 switchD_0011dae9_caseD_3;" 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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (char *)0x0))))" ( (binary_expression "((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)) &&\n           ((link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (char *)0x0)))" (parenthesized_expression "((((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0))" ( (binary_expression "(((mode & OPEN_BFD_RESCAN) == OPEN_BFD_NORMAL) &&\n             (pcVar1 = (s->wild_statement).filename, pcVar1 != (char *)0x0)) &&\n            (pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (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 "(pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0)" ( (comma_expression "pcVar7 = strpbrk(pcVar1,"?*["), pcVar7 == (char *)0x0" (assignment_expression "pcVar7 = strpbrk(pcVar1,"?*[")" identifier = (call_expression "strpbrk(pcVar1,"?*[")" identifier (argument_list "(pcVar1,"?*[")" ( identifier , (string_literal ""?*["" " string_content ") )))) , (binary_expression "pcVar7 == (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            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (char *)0x0)))" ( (parenthesized_expression "(link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (char *)0x0))" ( (binary_expression "link_info.path_separator == '\0' ||\n            (pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (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 "(pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (char *)0x0)" ( (comma_expression "pcVar7 = strchr(pcVar1,(int)link_info.path_separator), pcVar7 == (char *)0x0" (assignment_expression "pcVar7 = 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 "pcVar7 == (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 switchD_0011dae9_caseD_3;" 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 switchD_0011dae9_caseD_3;" 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 FUN_0011daa0(long *param_1,uint param_2)\n\n{\n  byte bVar1;\n  char *__s;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  byte bVar6;\n  long lVar7;\n  bool bVar8;\n  long local_48;\n  long *local_40;\n  \n  if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }\n  if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }\n  FUN_00129380(&DAT_0016c2c3);\n  return;\n}\n\n" (function_definition "void FUN_0011daa0(long *param_1,uint param_2)\n\n{\n  byte bVar1;\n  char *__s;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  byte bVar6;\n  long lVar7;\n  bool bVar8;\n  long local_48;\n  long *local_40;\n  \n  if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }\n  if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }\n  FUN_00129380(&DAT_0016c2c3);\n  return;\n}" primitive_type (function_declarator "FUN_0011daa0(long *param_1,uint param_2)" identifier (parameter_list "(long *param_1,uint param_2)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  char *__s;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  byte bVar6;\n  long lVar7;\n  bool bVar8;\n  long local_48;\n  long *local_40;\n  \n  if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }\n  if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }\n  FUN_00129380(&DAT_0016c2c3);\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "long local_48;" (sized_type_specifier "long" long) identifier ;) (declaration "long *local_40;" (sized_type_specifier "long" long) (pointer_declarator "*local_40" * identifier) ;) (if_statement "if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }" if (parenthesized_expression "(param_1 != (long *)0x0)" ( (binary_expression "param_1 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }" { (do_statement "do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);" do (compound_statement "{\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    }" { (switch_statement "switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }" switch (parenthesized_expression "((int)param_1[1])" ( (cast_expression "(int)param_1[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[1]" identifier [ number_literal ])) )) (compound_statement "{\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }" { (case_statement "case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;" case number_literal : (expression_statement "FUN_0011daa0(param_1[2],param_2);" (call_expression "FUN_0011daa0(param_1[2],param_2)" identifier (argument_list "(param_1[2],param_2)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }" case number_literal : (if_statement "if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }" if (parenthesized_expression "(*(int *)(param_1[2] + 0x10) != 8)" ( (binary_expression "*(int *)(param_1[2] + 0x10) != 8" (pointer_expression "*(int *)(param_1[2] + 0x10)" * (cast_expression "(int *)(param_1[2] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[2] + 0x10)" ( (binary_expression "param_1[2] + 0x10" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n          FUN_001272e0();\n        }" { (expression_statement "FUN_001272e0();" (call_expression "FUN_001272e0()" identifier (argument_list "()" ( ))) ;) }))) (case_statement "default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;" default : (labeled_statement "switchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;" statement_identifier : (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;)) (break_statement "break;" break ;)) (case_statement "case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;" case number_literal : (expression_statement "bVar1 = *(byte *)((long)param_1 + 0x49);" (assignment_expression "bVar1 = *(byte *)((long)param_1 + 0x49)" identifier = (pointer_expression "*(byte *)((long)param_1 + 0x49)" * (cast_expression "(byte *)((long)param_1 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x49)" ( (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (if_statement "if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\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_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }" { (expression_statement "param_1[8] = DAT_002b4da0;" (assignment_expression "param_1[8] = DAT_002b4da0" (subscript_expression "param_1[8]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }" if (parenthesized_expression "(((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0))))" ( (binary_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))" (parenthesized_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0))))" ( (binary_expression "(param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))" (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) && (parenthesized_expression "(((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))" ( (parenthesized_expression "((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0))" ( (binary_expression "(param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)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_002b4ce0 == (long *)0x0)" ( (binary_expression "DAT_002b4ce0 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) && (parenthesized_expression "(((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))" ( (parenthesized_expression "((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0))" ( (binary_expression "(bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)" (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(lVar7 = param_1[4], lVar7 != 0)" ( (comma_expression "lVar7 = param_1[4], lVar7 != 0" (assignment_expression "lVar7 = param_1[4]" identifier = (subscript_expression "param_1[4]" identifier [ number_literal ])) , (binary_expression "lVar7 != 0" identifier != number_literal)) ))) )) ))) )) (compound_statement "{\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }" { (expression_statement "bVar6 = *(byte *)(lVar7 + 0x44) & 7;" (assignment_expression "bVar6 = *(byte *)(lVar7 + 0x44) & 7" identifier = (binary_expression "*(byte *)(lVar7 + 0x44) & 7" (pointer_expression "*(byte *)(lVar7 + 0x44)" * (cast_expression "(byte *)(lVar7 + 0x44)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x44)" ( (binary_expression "lVar7 + 0x44" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" if (parenthesized_expression "(bVar6 == 2)" ( (binary_expression "bVar6 == 2" identifier == number_literal) )) (compound_statement "{\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }" { (if_statement "if ((bVar1 & 1) == 0) goto LAB_0011dd75;" 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 LAB_0011dd75;" goto statement_identifier ;)) }) (else_clause "else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" else (if_statement "if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" if (parenthesized_expression "((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0))))" ( (binary_expression "(((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))" (parenthesized_expression "(((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0'))" ( (binary_expression "((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')" (parenthesized_expression "((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0))" ( (binary_expression "(bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)" (parenthesized_expression "(bVar6 == 1)" ( (binary_expression "bVar6 == 1" identifier == number_literal) )) && (parenthesized_expression "((*(byte *)(lVar7 + 0x45) & 8) != 0)" ( (binary_expression "(*(byte *)(lVar7 + 0x45) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar7 + 0x45) & 8)" ( (binary_expression "*(byte *)(lVar7 + 0x45) & 8" (pointer_expression "*(byte *)(lVar7 + 0x45)" * (cast_expression "(byte *)(lVar7 + 0x45)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0x45)" ( (binary_expression "lVar7 + 0x45" 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 *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))" ( (parenthesized_expression "(*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0))" ( (binary_expression "*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)" (binary_expression "*(int *)(*(long *)(lVar7 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(lVar7 + 8) + 8)" * (cast_expression "(int *)(*(long *)(lVar7 + 8) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar7 + 8) + 8)" ( (binary_expression "*(long *)(lVar7 + 8) + 8" (pointer_expression "*(long *)(lVar7 + 8)" * (cast_expression "(long *)(lVar7 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 8)" ( (binary_expression "lVar7 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) && (parenthesized_expression "((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)" ( (binary_expression "(*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40)" ( (binary_expression "*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40" (pointer_expression "*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c)" * (cast_expression "(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(lVar7 + 0xf8) + 0xc8c)" ( (binary_expression "*(long *)(lVar7 + 0xf8) + 0xc8c" (pointer_expression "*(long *)(lVar7 + 0xf8)" * (cast_expression "(long *)(lVar7 + 0xf8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar7 + 0xf8)" ( (binary_expression "lVar7 + 0xf8" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" { (labeled_statement "LAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;" statement_identifier : (expression_statement "*(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;" (assignment_expression "*(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10" (pointer_expression "*(byte *)((long)param_1 + 0x49)" * (cast_expression "(byte *)((long)param_1 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x49)" ( (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "*(byte *)((long)param_1 + 0x49) & 0xed | 0x10" (binary_expression "*(byte *)((long)param_1 + 0x49) & 0xed" (pointer_expression "*(byte *)((long)param_1 + 0x49)" * (cast_expression "(byte *)((long)param_1 + 0x49)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + 0x49)" ( (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) & number_literal) | number_literal)) ;)) })))) })) (expression_statement "lVar7 = DAT_002b5ee8;" (assignment_expression "lVar7 = DAT_002b5ee8" identifier = identifier) ;) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "local_40 = &local_48;" (assignment_expression "local_40 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "iVar3 = FUN_0011ce80(param_1,&local_48);" (assignment_expression "iVar3 = FUN_0011ce80(param_1,&local_48)" identifier = (call_expression "FUN_0011ce80(param_1,&local_48)" identifier (argument_list "(param_1,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n            DAT_002b60c4 = 0;\n          }" { (expression_statement "DAT_002b60c4 = 0;" (assignment_expression "DAT_002b60c4 = 0" identifier = number_literal) ;) })) (if_statement "if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }" if (parenthesized_expression "(local_48 != 0)" ( (binary_expression "local_48 != 0" identifier != number_literal) )) (compound_statement "{\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }" { (if_statement "if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" if (parenthesized_expression "(DAT_002b5ee8 == lVar7)" ( (binary_expression "DAT_002b5ee8 == lVar7" identifier == identifier) )) (compound_statement "{\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }" { (expression_statement "*local_40 = *param_1;" (assignment_expression "*local_40 = *param_1" (pointer_expression "*local_40" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "*param_1 = local_48;" (assignment_expression "*param_1 = local_48" (pointer_expression "*param_1" * identifier) = identifier) ;) }) (else_clause "else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" else (compound_statement "{\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" { (expression_statement "lVar7 = param_1[2];" (assignment_expression "lVar7 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );" (assignment_expression "uVar5 = 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_00129380(uVar5,lVar7);" (call_expression "FUN_00129380(uVar5,lVar7)" identifier (argument_list "(uVar5,lVar7)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = PTR_DAT_002b2710;" (assignment_expression "puVar2 = PTR_DAT_002b2710" identifier = identifier) ;) (expression_statement "**(long **)(PTR_DAT_002b2710 + 8) = local_48;" (assignment_expression "**(long **)(PTR_DAT_002b2710 + 8) = local_48" (pointer_expression "**(long **)(PTR_DAT_002b2710 + 8)" * (pointer_expression "*(long **)(PTR_DAT_002b2710 + 8)" * (cast_expression "(long **)(PTR_DAT_002b2710 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_DAT_002b2710 + 8)" ( (binary_expression "PTR_DAT_002b2710 + 8" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(long **)(puVar2 + 8) = local_40;" (assignment_expression "*(long **)(puVar2 + 8) = local_40" (pointer_expression "*(long **)(puVar2 + 8)" * (cast_expression "(long **)(puVar2 + 8)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar2 + 8)" ( (binary_expression "puVar2 + 8" identifier + number_literal) )))) = identifier) ;) }))) })) })) (if_statement "if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;" if (parenthesized_expression "(DAT_002b4ce0 != param_1)" ( (binary_expression "DAT_002b4ce0 != param_1" identifier != identifier) )) (goto_statement "goto switchD_0011dae9_caseD_3;" goto statement_identifier ;)) (expression_statement "DAT_002b4ce0 = (long *)0x0;" (assignment_expression "DAT_002b4ce0 = (long *)0x0" identifier = (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;" case number_literal : (if_statement "if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }" if (parenthesized_expression "(((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            )))" ( (binary_expression "((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))" (parenthesized_expression "((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0))" ( (binary_expression "(((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)" (parenthesized_expression "(((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0))" ( (binary_expression "((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (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 "(__s = (char *)param_1[2], __s != (char *)0x0)" ( (comma_expression "__s = (char *)param_1[2], __s != (char *)0x0" (assignment_expression "__s = (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 "__s != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) && (parenthesized_expression "(pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)" ( (comma_expression "pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strpbrk(__s,"?*[")" identifier = (call_expression "strpbrk(__s,"?*[")" identifier (argument_list "(__s,"?*[")" ( 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_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))" ( (parenthesized_expression "(DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            )" ( (binary_expression "DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)" (binary_expression "DAT_002b5f4a == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)" ( (comma_expression "pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strchr(__s,(int)DAT_002b5f4a)" identifier = (call_expression "strchr(__s,(int)DAT_002b5f4a)" identifier (argument_list "(__s,(int)DAT_002b5f4a)" ( identifier , (cast_expression "(int)DAT_002b5f4a" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "pcVar4 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) ))) )) (compound_statement "{\n          FUN_0011d390(__s);\n        }" { (expression_statement "FUN_0011d390(__s);" (call_expression "FUN_0011d390(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) })) (expression_statement "FUN_0011daa0(param_1[6],param_2);" (call_expression "FUN_0011daa0(param_1[6],param_2)" identifier (argument_list "(param_1[6],param_2)" ( (subscript_expression "param_1[6]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;" case number_literal : (expression_statement "DAT_002b4da0 = param_1[2];" (assignment_expression "DAT_002b4da0 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;" case number_literal : (expression_statement "lVar7 = *(long *)(DAT_002b5f68 + 0x30);" (assignment_expression "lVar7 = *(long *)(DAT_002b5f68 + 0x30)" identifier = (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" * (cast_expression "(long *)(DAT_002b5f68 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f68 + 0x30)" ( (binary_expression "DAT_002b5f68 + 0x30" identifier + number_literal) ))))) ;) (do_statement "do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);" do (compound_statement "{\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        }" { (expression_statement "FUN_0011daa0(param_1[2],param_2 | 1);" (call_expression "FUN_0011daa0(param_1[2],param_2 | 1)" identifier (argument_list "(param_1[2],param_2 | 1)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (binary_expression "param_2 | 1" identifier | number_literal) ))) ;) (expression_statement "bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;" (assignment_expression "bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7" identifier = (binary_expression "*(long *)(DAT_002b5f68 + 0x30) != lVar7" (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" * (cast_expression "(long *)(DAT_002b5f68 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f68 + 0x30)" ( (binary_expression "DAT_002b5f68 + 0x30" identifier + number_literal) )))) != identifier)) ;) (expression_statement "lVar7 = *(long *)(DAT_002b5f68 + 0x30);" (assignment_expression "lVar7 = *(long *)(DAT_002b5f68 + 0x30)" identifier = (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" * (cast_expression "(long *)(DAT_002b5f68 + 0x30)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002b5f68 + 0x30)" ( (binary_expression "DAT_002b5f68 + 0x30" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (goto_statement "goto switchD_0011dae9_caseD_3;" goto statement_identifier ;)) (case_statement "case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;" case number_literal : (expression_statement "FUN_0011daa0(DAT_002b5f00,param_2);" (call_expression "FUN_0011daa0(DAT_002b5f00,param_2)" identifier (argument_list "(DAT_002b5f00,param_2)" ( identifier , identifier ))) ;) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" identifier = (cast_expression "(long *)*param_1" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;)) })) }) while (parenthesized_expression "(param_1 != (long *)0x0)" ( (binary_expression "param_1 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) (if_statement "if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }" if (parenthesized_expression "((DAT_002b5ec1 & 8) == 0)" ( (binary_expression "(DAT_002b5ec1 & 8) == 0" (parenthesized_expression "(DAT_002b5ec1 & 8)" ( (binary_expression "DAT_002b5ec1 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00129380(&DAT_0016c2c3);" (call_expression "FUN_00129380(&DAT_0016c2c3)" identifier (argument_list "(&DAT_0016c2c3)" ( (pointer_expression "&DAT_0016c2c3" & identifier) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (switch_statement switch (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) )) (compound_statement { (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( ))) ;) }))) (case_statement default : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long)) ) 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 (sized_type_specifier long) (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 (sized_type_specifier long) (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 (sized_type_specifier long) (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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) 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 , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long) (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (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 (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT | LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (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 ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) })) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0011daa0(long *param_1,uint param_2)\n\n{\n  byte bVar1;\n  char *__s;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  byte bVar6;\n  long lVar7;\n  bool bVar8;\n  long local_48;\n  long *local_40;\n  \n  if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }\n  if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }\n  FUN_00129380(&DAT_0016c2c3);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0011daa0(long *param_1,uint param_2)" (identifier "FUN_0011daa0") (parameter_list "(long *param_1,uint param_2)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte bVar1;\n  char *__s;\n  undefined *puVar2;\n  int iVar3;\n  char *pcVar4;\n  undefined8 uVar5;\n  byte bVar6;\n  long lVar7;\n  bool bVar8;\n  long local_48;\n  long *local_40;\n  \n  if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }\n  if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }\n  FUN_00129380(&DAT_0016c2c3);\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "long lVar7;" (sized_type_specifier "long" (long "long")) (identifier "lVar7") (; ";")) (declaration "bool bVar8;" (primitive_type "bool") (identifier "bVar8") (; ";")) (declaration "long local_48;" (sized_type_specifier "long" (long "long")) (identifier "local_48") (; ";")) (declaration "long *local_40;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (if_statement "if (param_1 != (long *)0x0) {\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }" (if "if") (parenthesized_expression "(param_1 != (long *)0x0)" (( "(") (binary_expression "param_1 != (long *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);\n  }" ({ "{") (do_statement "do {\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    } while (param_1 != (long *)0x0);" (do "do") (compound_statement "{\n      switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }\n    }" ({ "{") (switch_statement "switch((int)param_1[1]) {\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }" (switch "switch") (parenthesized_expression "((int)param_1[1])" (( "(") (cast_expression "(int)param_1[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 1:\n        if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }\n      default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;\n      case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;\n      case 4:\n        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;\n      case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;\n      case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;\n      case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;\n      }" ({ "{") (case_statement "case 0:\n        FUN_0011daa0(param_1[2],param_2);\n        param_1 = (long *)*param_1;\n        break;" (case "case") (number_literal "0") (: ":") (expression_statement "FUN_0011daa0(param_1[2],param_2);" (call_expression "FUN_0011daa0(param_1[2],param_2)" (identifier "FUN_0011daa0") (argument_list "(param_1[2],param_2)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" (identifier "param_1") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (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] + 0x10) != 8) {\n          FUN_001272e0();\n        }" (case "case") (number_literal "1") (: ":") (if_statement "if (*(int *)(param_1[2] + 0x10) != 8) {\n          FUN_001272e0();\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1[2] + 0x10) != 8)" (( "(") (binary_expression "*(int *)(param_1[2] + 0x10) != 8" (pointer_expression "*(int *)(param_1[2] + 0x10)" (* "*") (cast_expression "(int *)(param_1[2] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[2] + 0x10)" (( "(") (binary_expression "param_1[2] + 0x10" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n          FUN_001272e0();\n        }" ({ "{") (expression_statement "FUN_001272e0();" (call_expression "FUN_001272e0()" (identifier "FUN_001272e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (case_statement "default:\nswitchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;\n        break;" (default "default") (: ":") (labeled_statement "switchD_0011dae9_caseD_3:\n        param_1 = (long *)*param_1;" (statement_identifier "switchD_0011dae9_caseD_3") (: ":") (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" (identifier "param_1") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n        bVar1 = *(byte *)((long)param_1 + 0x49);\n        if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }\n        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;\n        DAT_002b4ce0 = (long *)0x0;\n        param_1 = (long *)*param_1;\n        break;" (case "case") (number_literal "2") (: ":") (expression_statement "bVar1 = *(byte *)((long)param_1 + 0x49);" (assignment_expression "bVar1 = *(byte *)((long)param_1 + 0x49)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)((long)param_1 + 0x49)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x49)" (( "(") (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x49")) () ")"))))) (; ";")) (if_statement "if ((bVar1 & 4) != 0) {\n          param_1[8] = DAT_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\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_002b4da0;\n          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }\n          lVar7 = DAT_002b5ee8;\n          local_48 = 0;\n          local_40 = &local_48;\n          iVar3 = FUN_0011ce80(param_1,&local_48);\n          if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }\n          if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }\n        }" ({ "{") (expression_statement "param_1[8] = DAT_002b4da0;" (assignment_expression "param_1[8] = DAT_002b4da0" (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) (= "=") (identifier "DAT_002b4da0")) (; ";")) (if_statement "if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }" (if "if") (parenthesized_expression "(((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0))))" (( "(") (binary_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&\n             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))" (parenthesized_expression "((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0))))" (( "(") (binary_expression "(param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))" (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))" (( "(") (parenthesized_expression "((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0))" (( "(") (binary_expression "(param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)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_002b4ce0 == (long *)0x0)" (( "(") (binary_expression "DAT_002b4ce0 == (long *)0x0" (identifier "DAT_002b4ce0") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))" (( "(") (parenthesized_expression "((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0))" (( "(") (binary_expression "(bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)" (binary_expression "(bVar1 & 2) != 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(lVar7 = param_1[4], lVar7 != 0)" (( "(") (comma_expression "lVar7 = param_1[4], lVar7 != 0" (assignment_expression "lVar7 = param_1[4]" (identifier "lVar7") (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (, ",") (binary_expression "lVar7 != 0" (identifier "lVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n            bVar6 = *(byte *)(lVar7 + 0x44) & 7;\n            if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }\n          }" ({ "{") (expression_statement "bVar6 = *(byte *)(lVar7 + 0x44) & 7;" (assignment_expression "bVar6 = *(byte *)(lVar7 + 0x44) & 7" (identifier "bVar6") (= "=") (binary_expression "*(byte *)(lVar7 + 0x44) & 7" (pointer_expression "*(byte *)(lVar7 + 0x44)" (* "*") (cast_expression "(byte *)(lVar7 + 0x44)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x44)" (( "(") (binary_expression "lVar7 + 0x44" (identifier "lVar7") (+ "+") (number_literal "0x44")) () ")")))) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (bVar6 == 2) {\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }\n            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" (if "if") (parenthesized_expression "(bVar6 == 2)" (( "(") (binary_expression "bVar6 == 2" (identifier "bVar6") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              if ((bVar1 & 1) == 0) goto LAB_0011dd75;\n            }" ({ "{") (if_statement "if ((bVar1 & 1) == 0) goto LAB_0011dd75;" (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 LAB_0011dd75;" (goto "goto") (statement_identifier "LAB_0011dd75") (; ";"))) (} "}")) (else_clause "else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" (else "else") (if_statement "if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" (if "if") (parenthesized_expression "((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0))))" (( "(") (binary_expression "(((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')) &&\n                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))" (parenthesized_expression "(((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0'))" (( "(") (binary_expression "((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&\n                     ((char)param_1[9] < '\0')" (parenthesized_expression "((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0))" (( "(") (binary_expression "(bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)" (parenthesized_expression "(bVar6 == 1)" (( "(") (binary_expression "bVar6 == 1" (identifier "bVar6") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(lVar7 + 0x45) & 8) != 0)" (( "(") (binary_expression "(*(byte *)(lVar7 + 0x45) & 8) != 0" (parenthesized_expression "(*(byte *)(lVar7 + 0x45) & 8)" (( "(") (binary_expression "*(byte *)(lVar7 + 0x45) & 8" (pointer_expression "*(byte *)(lVar7 + 0x45)" (* "*") (cast_expression "(byte *)(lVar7 + 0x45)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0x45)" (( "(") (binary_expression "lVar7 + 0x45" (identifier "lVar7") (+ "+") (number_literal "0x45")) () ")")))) (& "&") (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 *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))" (( "(") (parenthesized_expression "(*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0))" (( "(") (binary_expression "*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&\n                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)" (binary_expression "*(int *)(*(long *)(lVar7 + 8) + 8) == 5" (pointer_expression "*(int *)(*(long *)(lVar7 + 8) + 8)" (* "*") (cast_expression "(int *)(*(long *)(lVar7 + 8) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar7 + 8) + 8)" (( "(") (binary_expression "*(long *)(lVar7 + 8) + 8" (pointer_expression "*(long *)(lVar7 + 8)" (* "*") (cast_expression "(long *)(lVar7 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 8)" (( "(") (binary_expression "lVar7 + 8" (identifier "lVar7") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (== "==") (number_literal "5")) (&& "&&") (parenthesized_expression "((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)" (( "(") (binary_expression "(*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0" (parenthesized_expression "(*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40)" (( "(") (binary_expression "*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40" (pointer_expression "*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c)" (* "*") (cast_expression "(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(lVar7 + 0xf8) + 0xc8c)" (( "(") (binary_expression "*(long *)(lVar7 + 0xf8) + 0xc8c" (pointer_expression "*(long *)(lVar7 + 0xf8)" (* "*") (cast_expression "(long *)(lVar7 + 0xf8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar7 + 0xf8)" (( "(") (binary_expression "lVar7 + 0xf8" (identifier "lVar7") (+ "+") (number_literal "0xf8")) () ")")))) (+ "+") (number_literal "0xc8c")) () ")")))) (& "&") (number_literal "0x40")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;\n            }" ({ "{") (labeled_statement "LAB_0011dd75:\n              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;" (statement_identifier "LAB_0011dd75") (: ":") (expression_statement "*(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;" (assignment_expression "*(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10" (pointer_expression "*(byte *)((long)param_1 + 0x49)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x49)" (( "(") (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x49")) () ")")))) (= "=") (binary_expression "*(byte *)((long)param_1 + 0x49) & 0xed | 0x10" (binary_expression "*(byte *)((long)param_1 + 0x49) & 0xed" (pointer_expression "*(byte *)((long)param_1 + 0x49)" (* "*") (cast_expression "(byte *)((long)param_1 + 0x49)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + 0x49)" (( "(") (binary_expression "(long)param_1 + 0x49" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (number_literal "0x49")) () ")")))) (& "&") (number_literal "0xed")) (| "|") (number_literal "0x10"))) (; ";"))) (} "}"))))) (} "}"))) (expression_statement "lVar7 = DAT_002b5ee8;" (assignment_expression "lVar7 = DAT_002b5ee8" (identifier "lVar7") (= "=") (identifier "DAT_002b5ee8")) (; ";")) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_40 = &local_48;" (assignment_expression "local_40 = &local_48" (identifier "local_40") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "iVar3 = FUN_0011ce80(param_1,&local_48);" (assignment_expression "iVar3 = FUN_0011ce80(param_1,&local_48)" (identifier "iVar3") (= "=") (call_expression "FUN_0011ce80(param_1,&local_48)" (identifier "FUN_0011ce80") (argument_list "(param_1,&local_48)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n            DAT_002b60c4 = 0;\n          }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            DAT_002b60c4 = 0;\n          }" ({ "{") (expression_statement "DAT_002b60c4 = 0;" (assignment_expression "DAT_002b60c4 = 0" (identifier "DAT_002b60c4") (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (local_48 != 0) {\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }" (if "if") (parenthesized_expression "(local_48 != 0)" (( "(") (binary_expression "local_48 != 0" (identifier "local_48") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }\n          }" ({ "{") (if_statement "if (DAT_002b5ee8 == lVar7) {\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }\n            else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" (if "if") (parenthesized_expression "(DAT_002b5ee8 == lVar7)" (( "(") (binary_expression "DAT_002b5ee8 == lVar7" (identifier "DAT_002b5ee8") (== "==") (identifier "lVar7")) () ")")) (compound_statement "{\n              *local_40 = *param_1;\n              *param_1 = local_48;\n            }" ({ "{") (expression_statement "*local_40 = *param_1;" (assignment_expression "*local_40 = *param_1" (pointer_expression "*local_40" (* "*") (identifier "local_40")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "*param_1 = local_48;" (assignment_expression "*param_1 = local_48" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "local_48")) (; ";")) (} "}")) (else_clause "else {\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" (else "else") (compound_statement "{\n              lVar7 = param_1[2];\n              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );\n              FUN_00129380(uVar5,lVar7);\n              puVar2 = PTR_DAT_002b2710;\n              **(long **)(PTR_DAT_002b2710 + 8) = local_48;\n              *(long **)(puVar2 + 8) = local_40;\n            }" ({ "{") (expression_statement "lVar7 = param_1[2];" (assignment_expression "lVar7 = param_1[2]" (identifier "lVar7") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               );" (assignment_expression "uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5\n                               )" (identifier "uVar5") (= "=") (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_00129380(uVar5,lVar7);" (call_expression "FUN_00129380(uVar5,lVar7)" (identifier "FUN_00129380") (argument_list "(uVar5,lVar7)" (( "(") (identifier "uVar5") (, ",") (identifier "lVar7") () ")"))) (; ";")) (expression_statement "puVar2 = PTR_DAT_002b2710;" (assignment_expression "puVar2 = PTR_DAT_002b2710" (identifier "puVar2") (= "=") (identifier "PTR_DAT_002b2710")) (; ";")) (expression_statement "**(long **)(PTR_DAT_002b2710 + 8) = local_48;" (assignment_expression "**(long **)(PTR_DAT_002b2710 + 8) = local_48" (pointer_expression "**(long **)(PTR_DAT_002b2710 + 8)" (* "*") (pointer_expression "*(long **)(PTR_DAT_002b2710 + 8)" (* "*") (cast_expression "(long **)(PTR_DAT_002b2710 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_DAT_002b2710 + 8)" (( "(") (binary_expression "PTR_DAT_002b2710 + 8" (identifier "PTR_DAT_002b2710") (+ "+") (number_literal "8")) () ")"))))) (= "=") (identifier "local_48")) (; ";")) (expression_statement "*(long **)(puVar2 + 8) = local_40;" (assignment_expression "*(long **)(puVar2 + 8) = local_40" (pointer_expression "*(long **)(puVar2 + 8)" (* "*") (cast_expression "(long **)(puVar2 + 8)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar2 + 8)" (( "(") (binary_expression "puVar2 + 8" (identifier "puVar2") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "local_40")) (; ";")) (} "}")))) (} "}"))) (} "}"))) (if_statement "if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;" (if "if") (parenthesized_expression "(DAT_002b4ce0 != param_1)" (( "(") (binary_expression "DAT_002b4ce0 != param_1" (identifier "DAT_002b4ce0") (!= "!=") (identifier "param_1")) () ")")) (goto_statement "goto switchD_0011dae9_caseD_3;" (goto "goto") (statement_identifier "switchD_0011dae9_caseD_3") (; ";"))) (expression_statement "DAT_002b4ce0 = (long *)0x0;" (assignment_expression "DAT_002b4ce0 = (long *)0x0" (identifier "DAT_002b4ce0") (= "=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" (identifier "param_1") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (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) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }\n        FUN_0011daa0(param_1[6],param_2);\n        param_1 = (long *)*param_1;\n        break;" (case "case") (number_literal "4") (: ":") (if_statement "if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))) {\n          FUN_0011d390(__s);\n        }" (if "if") (parenthesized_expression "(((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            )))" (( "(") (binary_expression "((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&\n           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))" (parenthesized_expression "((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0))" (( "(") (binary_expression "(((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&\n            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)" (parenthesized_expression "(((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0))" (( "(") (binary_expression "((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (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 "(__s = (char *)param_1[2], __s != (char *)0x0)" (( "(") (comma_expression "__s = (char *)param_1[2], __s != (char *)0x0" (assignment_expression "__s = (char *)param_1[2]" (identifier "__s") (= "=") (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 "__s != (char *)0x0" (identifier "__s") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)" (( "(") (comma_expression "pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strpbrk(__s,"?*[")" (identifier "pcVar4") (= "=") (call_expression "strpbrk(__s,"?*[")" (identifier "strpbrk") (argument_list "(__s,"?*[")" (( "(") (identifier "__s") (, ",") (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_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            ))" (( "(") (parenthesized_expression "(DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)\n            )" (( "(") (binary_expression "DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)" (binary_expression "DAT_002b5f4a == '\0'" (identifier "DAT_002b5f4a") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)" (( "(") (comma_expression "pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0" (assignment_expression "pcVar4 = strchr(__s,(int)DAT_002b5f4a)" (identifier "pcVar4") (= "=") (call_expression "strchr(__s,(int)DAT_002b5f4a)" (identifier "strchr") (argument_list "(__s,(int)DAT_002b5f4a)" (( "(") (identifier "__s") (, ",") (cast_expression "(int)DAT_002b5f4a" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "DAT_002b5f4a")) () ")")))) (, ",") (binary_expression "pcVar4 == (char *)0x0" (identifier "pcVar4") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          FUN_0011d390(__s);\n        }" ({ "{") (expression_statement "FUN_0011d390(__s);" (call_expression "FUN_0011d390(__s)" (identifier "FUN_0011d390") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0011daa0(param_1[6],param_2);" (call_expression "FUN_0011daa0(param_1[6],param_2)" (identifier "FUN_0011daa0") (argument_list "(param_1[6],param_2)" (( "(") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" (identifier "param_1") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:\n        DAT_002b4da0 = param_1[2];\n        param_1 = (long *)*param_1;\n        break;" (case "case") (number_literal "10") (: ":") (expression_statement "DAT_002b4da0 = param_1[2];" (assignment_expression "DAT_002b4da0 = param_1[2]" (identifier "DAT_002b4da0") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" (identifier "param_1") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xd:\n        lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);\n        goto switchD_0011dae9_caseD_3;" (case "case") (number_literal "0xd") (: ":") (expression_statement "lVar7 = *(long *)(DAT_002b5f68 + 0x30);" (assignment_expression "lVar7 = *(long *)(DAT_002b5f68 + 0x30)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" (* "*") (cast_expression "(long *)(DAT_002b5f68 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5f68 + 0x30)" (( "(") (binary_expression "DAT_002b5f68 + 0x30" (identifier "DAT_002b5f68") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (do_statement "do {\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        } while (bVar8);" (do "do") (compound_statement "{\n          FUN_0011daa0(param_1[2],param_2 | 1);\n          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;\n          lVar7 = *(long *)(DAT_002b5f68 + 0x30);\n        }" ({ "{") (expression_statement "FUN_0011daa0(param_1[2],param_2 | 1);" (call_expression "FUN_0011daa0(param_1[2],param_2 | 1)" (identifier "FUN_0011daa0") (argument_list "(param_1[2],param_2 | 1)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (binary_expression "param_2 | 1" (identifier "param_2") (| "|") (number_literal "1")) () ")"))) (; ";")) (expression_statement "bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;" (assignment_expression "bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7" (identifier "bVar8") (= "=") (binary_expression "*(long *)(DAT_002b5f68 + 0x30) != lVar7" (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" (* "*") (cast_expression "(long *)(DAT_002b5f68 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5f68 + 0x30)" (( "(") (binary_expression "DAT_002b5f68 + 0x30" (identifier "DAT_002b5f68") (+ "+") (number_literal "0x30")) () ")")))) (!= "!=") (identifier "lVar7"))) (; ";")) (expression_statement "lVar7 = *(long *)(DAT_002b5f68 + 0x30);" (assignment_expression "lVar7 = *(long *)(DAT_002b5f68 + 0x30)" (identifier "lVar7") (= "=") (pointer_expression "*(long *)(DAT_002b5f68 + 0x30)" (* "*") (cast_expression "(long *)(DAT_002b5f68 + 0x30)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002b5f68 + 0x30)" (( "(") (binary_expression "DAT_002b5f68 + 0x30" (identifier "DAT_002b5f68") (+ "+") (number_literal "0x30")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar8)" (( "(") (identifier "bVar8") () ")")) (; ";")) (goto_statement "goto switchD_0011dae9_caseD_3;" (goto "goto") (statement_identifier "switchD_0011dae9_caseD_3") (; ";"))) (case_statement "case 0xf:\n        FUN_0011daa0(DAT_002b5f00,param_2);\n        param_1 = (long *)*param_1;" (case "case") (number_literal "0xf") (: ":") (expression_statement "FUN_0011daa0(DAT_002b5f00,param_2);" (call_expression "FUN_0011daa0(DAT_002b5f00,param_2)" (identifier "FUN_0011daa0") (argument_list "(DAT_002b5f00,param_2)" (( "(") (identifier "DAT_002b5f00") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "param_1 = (long *)*param_1;" (assignment_expression "param_1 = (long *)*param_1" (identifier "param_1") (= "=") (cast_expression "(long *)*param_1" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(param_1 != (long *)0x0)" (( "(") (binary_expression "param_1 != (long *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}"))) (if_statement "if ((DAT_002b5ec1 & 8) == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "((DAT_002b5ec1 & 8) == 0)" (( "(") (binary_expression "(DAT_002b5ec1 & 8) == 0" (parenthesized_expression "(DAT_002b5ec1 & 8)" (( "(") (binary_expression "DAT_002b5ec1 & 8" (identifier "DAT_002b5ec1") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00129380(&DAT_0016c2c3);" (call_expression "FUN_00129380(&DAT_0016c2c3)" (identifier "FUN_00129380") (argument_list "(&DAT_0016c2c3)" (( "(") (pointer_expression "&DAT_0016c2c3" (& "&") (identifier "DAT_0016c2c3")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *var_1,type_2 var_4)

{
  type_3 *tree;
  char *var_16;
  type_4 *var_8;
  type_5 p_Var3;
  type_6 *plVar4;
  type_3 **var_13;
  type_7 var_12;
  char *var_18;
  type_8 var_9;
  type_9 *var_22;
  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->data_statement).type != var_2) {
          var_3((type_10 *)tree);
        }
      default:
switchD_0011dae9_caseD_3:
        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->input_statement).the_bfd, var_8 != (type_4 *)0x0)))) {
            var_9 = var_8->field_0x44 & 7;
            if (var_9 == 2) {
              if (((type_11)p_Var3 & 0x100) == 0) goto LAB_0011dd75;
            }
            else if ((((var_9 == 1) && ((var_8->field_0x45 & 8) != 0)) &&
                     (*(char *)&(var_1->wild_statement).walk_wild_section_handler < '\0')) &&
                    ((var_8->xvec->flavour == var_10 &&
                     (((type_8)(var_8->tdata).aout_data[0xc8c] & 0x40) != 0)))) {
LAB_0011dd75:
              *(type_8 *)((long)&(var_1->wild_statement).walk_wild_section_handler + 1) =
                   *(type_8 *)((long)&(var_1->wild_statement).walk_wild_section_handler + 1) & 0xed | 0x10
              ;
            }
          }
          var_13 = lang_output_section_statement.tail;
          add.head = (type_3 *)0x0;
          add.tail = &add.head;
          var_12 = var_11(&var_1->input_statement,&add);
          if (var_12 == 0) {
            config.make_executable = 0;
          }
          if (add.head != (type_3 *)0x0) {
            if (lang_output_section_statement.tail == var_13) {
              *add.tail = (var_1->header).next;
              (var_1->header).next = add.head;
            }
            else {
              var_16 = (var_1->wild_statement).filename;
              var_18 = (char *)var_14(0,
                                         "%P: warning: %s contains output sections; did you forget -T?\n"
                                         ,5);
              var_15(var_18,var_16);
              plVar4 = stat_ptr;
              *stat_ptr->tail = add.head;
              plVar4->tail = add.tail;
            }
          }
        }
        if ((type_1 *)var_7 != var_1) goto switchD_0011dae9_caseD_3;
        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_16 = (var_1->wild_statement).filename, var_16 != (char *)0x0)) &&
            (var_18 = var_17(var_16,"?*["), var_18 == (char *)0x0)) &&
           ((link_info.path_separator == '\0' ||
            (var_18 = var_19(var_16,(int)link_info.path_separator), var_18 == (char *)0x0)))) {
          var_20(var_16);
        }
        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_22 = (link_info.hash)->undefs_tail;
        do {
          function_1((var_1->output_section_statement).children.head,var_4 | var_21);
          bVar10 = (link_info.hash)->undefs_tail != var_22;
          var_22 = (link_info.hash)->undefs_tail;
        } while (bVar10);
        goto switchD_0011dae9_caseD_3;
      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_15("%F");
  return;
}


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

void MASKED(long *param_1,uint param_2)

{
  byte bVar1;
  char *__s;
  undefined *puVar2;
  int iVar3;
  char *pcVar4;
  undefined8 uVar5;
  byte bVar6;
  long lVar7;
  bool bVar8;
  long local_48;
  long *local_40;
  
  if (param_1 != (long *)0x0) {
    do {
      switch((int)param_1[1]) {
      case 0:
        MASKED(param_1[2],param_2);
        param_1 = (long *)*param_1;
        break;
      case 1:
        if (*(int *)(param_1[2] + 0x10) != 8) {
          FUN_001272e0();
        }
      default:
switchD_0011dae9_caseD_3:
        param_1 = (long *)*param_1;
        break;
      case 2:
        bVar1 = *(byte *)((long)param_1 + 0x49);
        if ((bVar1 & 4) != 0) {
          param_1[8] = DAT_002b4da0;
          if (((param_2 != 0) && (((param_2 & 2) == 0 || (DAT_002b4ce0 == (long *)0x0)))) &&
             (((bVar1 & 2) != 0 && (lVar7 = param_1[4], lVar7 != 0)))) {
            bVar6 = *(byte *)(lVar7 + 0x44) & 7;
            if (bVar6 == 2) {
              if ((bVar1 & 1) == 0) goto LAB_0011dd75;
            }
            else if ((((bVar6 == 1) && ((*(byte *)(lVar7 + 0x45) & 8) != 0)) &&
                     ((char)param_1[9] < '\0')) &&
                    ((*(int *)(*(long *)(lVar7 + 8) + 8) == 5 &&
                     ((*(byte *)(*(long *)(lVar7 + 0xf8) + 0xc8c) & 0x40) != 0)))) {
LAB_0011dd75:
              *(byte *)((long)param_1 + 0x49) = *(byte *)((long)param_1 + 0x49) & 0xed | 0x10;
            }
          }
          lVar7 = DAT_002b5ee8;
          local_48 = 0;
          local_40 = &local_48;
          iVar3 = FUN_0011ce80(param_1,&local_48);
          if (iVar3 == 0) {
            DAT_002b60c4 = 0;
          }
          if (local_48 != 0) {
            if (DAT_002b5ee8 == lVar7) {
              *local_40 = *param_1;
              *param_1 = local_48;
            }
            else {
              lVar7 = param_1[2];
              uVar5 = dcgettext(0,"%P: warning: %s contains output sections; did you forget -T?\n",5
                               );
              FUN_00129380(uVar5,lVar7);
              puVar2 = PTR_DAT_002b2710;
              **(long **)(PTR_DAT_002b2710 + 8) = local_48;
              *(long **)(puVar2 + 8) = local_40;
            }
          }
        }
        if (DAT_002b4ce0 != param_1) goto switchD_0011dae9_caseD_3;
        DAT_002b4ce0 = (long *)0x0;
        param_1 = (long *)*param_1;
        break;
      case 4:
        if (((((param_2 & 2) == 0) && (__s = (char *)param_1[2], __s != (char *)0x0)) &&
            (pcVar4 = strpbrk(__s,"?*["), pcVar4 == (char *)0x0)) &&
           ((DAT_002b5f4a == '\0' || (pcVar4 = strchr(__s,(int)DAT_002b5f4a), pcVar4 == (char *)0x0)
            ))) {
          FUN_0011d390(__s);
        }
        MASKED(param_1[6],param_2);
        param_1 = (long *)*param_1;
        break;
      case 10:
        DAT_002b4da0 = param_1[2];
        param_1 = (long *)*param_1;
        break;
      case 0xd:
        lVar7 = *(long *)(DAT_002b5f68 + 0x30);
        do {
          MASKED(param_1[2],param_2 | 1);
          bVar8 = *(long *)(DAT_002b5f68 + 0x30) != lVar7;
          lVar7 = *(long *)(DAT_002b5f68 + 0x30);
        } while (bVar8);
        goto switchD_0011dae9_caseD_3;
      case 0xf:
        MASKED(DAT_002b5f00,param_2);
        param_1 = (long *)*param_1;
      }
    } while (param_1 != (long *)0x0);
  }
  if ((DAT_002b5ec1 & 8) == 0) {
    return;
  }
  FUN_00129380(&DAT_0016c2c3);
  return;
}

