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

void lang_add_section(lang_statement_list_type *ptr,asection *section,flag_info *sflag_info,
                     lang_output_section_statement_type *output)

{
  asection *section_00;
  bfd_section *pbVar1;
  bfd_section *pbVar2;
  bfd_boolean bVar3;
  uint uVar4;
  lang_statement_union *plVar5;
  int iVar6;
  uint uVar7;
  sec_ptr pbVar8;
  uint flags;
  byte *pbVar9;
  byte *pbVar10;
  undefined1 uVar11;
  undefined1 uVar12;
  byte bVar13;
  
  bVar13 = 0;
  uVar11 = &stack0xfffffff0 < (undefined1 *)0xc;
  uVar12 = &stack0x00000000 == (undefined1 *)0x1c;
  section_00 = (asection *)section->flags;
  bVar3 = lang_discard_section_p(section_00);
  iVar6 = 10;
  pbVar9 = (byte *)output->name;
  pbVar10 = (byte *)"/DISCARD/";
  do {
    if (iVar6 == 0) break;
    iVar6 = iVar6 + -1;
    uVar11 = *pbVar9 < *pbVar10;
    uVar12 = *pbVar9 == *pbVar10;
    pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;
    pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;
  } while ((bool)uVar12);
  if ((bVar3 == 0) && ((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11)) {
    if (((sflag_info == (flag_info *)0x0) ||
        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)
                           (&link_info,sflag_info,section), bVar3 != 0)) &&
       (section->output_section == (bfd_section *)0x0)) {
      if (((uint)section_00 & 0x2020000) == 0x2020000) {
        flags = (uint)section_00 & 0xfff3fdfb;
        if ((link_info._1_1_ & 0x10) != 0) {
          flags = (uint)section_00 & 0xfff1fdfb;
        }
      }
      else {
        flags = (uint)section_00 & 0xfff1fdfb;
        if ((link_info._0_1_ & 3) == 2) {
          flags = (uint)section_00 & 0xfffffdff;
        }
      }
      if (output->sectype == noload_section) {
        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {
          flags = flags & 0xfffffefd | 0x200;
        }
        else {
          flags = flags & 0xfffffffc | 0x200;
        }
      }
      else if (output->sectype == noalloc_section) {
        flags = flags & 0xfffffffe;
      }
      pbVar8 = output->bfd_section;
      if (pbVar8 == (sec_ptr)0x0) {
        init_os(output,flags);
        pbVar8 = output->bfd_section;
      }
      uVar4 = (flags | 0xfffffff7) & pbVar8->flags;
      pbVar8->flags = uVar4;
      if ((pbVar8->field_0x18 & 4) == 0) {
        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;
        pbVar8->flags = uVar4 | flags;
        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)
                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);
        if ((flags & 0x800000) != 0) {
          output->bfd_section->entsize = section->entsize;
        }
      }
      else {
        uVar7 = flags & 0xfffffff7;
        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||
           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {
          uVar4 = uVar4 & 0xfe7fffff;
          uVar7 = flags & 0xfe7ffff7;
        }
        pbVar8->flags = uVar4 | uVar7;
        flags = uVar7;
      }
      if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {
        output->block_value = 0x80;
      }
      pbVar1 = output->bfd_section;
      if (pbVar1->alignment_power < section->alignment_power) {
        pbVar1->alignment_power = section->alignment_power;
      }
      bVar3 = map_head_is_link_order;
      section->output_section = pbVar1;
      if (bVar3 == 0) {
        pbVar2 = (pbVar1->map_tail).s;
        (pbVar1->map_tail).link_order = (bfd_link_order *)section;
        (section->map_head).link_order = (bfd_link_order *)0x0;
        (section->map_tail).s = pbVar2;
        if (pbVar2 == (bfd_section *)0x0) {
          (pbVar1->map_head).link_order = (bfd_link_order *)section;
        }
        else {
          (pbVar2->map_head).link_order = (bfd_link_order *)section;
        }
      }
      plVar5 = (lang_statement_union *)stat_alloc(0xc);
      (plVar5->header).type = lang_input_section_enum;
      (plVar5->header).next = (lang_statement_union *)0x0;
      *ptr->tail = plVar5;
      ptr->tail = (lang_statement_union **)plVar5;
      (plVar5->input_section).section = section;
      return;
    }
  }
  else if (section->output_section == (bfd_section *)0x0) {
    section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);
    return;
  }
  return;
}



void FUN_000265f0(int param_1,int param_2,int param_3,int param_4)

{
  int iVar1;
  uint uVar2;
  undefined4 *puVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  int unaff_EBP;
  byte *pbVar7;
  byte *pbVar8;
  undefined1 uVar9;
  undefined1 uVar10;
  byte bVar11;
  
  bVar11 = 0;
  FUN_0001d3ba();
  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;
  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;
  uVar2 = *(uint *)(param_2 + 0x14);
  iVar1 = FUN_00021350();
  iVar4 = 10;
  pbVar7 = *(byte **)(param_4 + 0x18);
  pbVar8 = (byte *)(unaff_EBP + 0x58988);
  do {
    if (iVar4 == 0) break;
    iVar4 = iVar4 + -1;
    uVar9 = *pbVar7 < *pbVar8;
    uVar10 = *pbVar7 == *pbVar8;
    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;
    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;
  } while ((bool)uVar10);
  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {
    if (((param_3 == 0) ||
        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +
                                               unaff_EBP + 2) + 4) + 0x188))
                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&
       (*(int *)(param_2 + 0x54) == 0)) {
      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);
      if ((uVar2 & 0x2020000) == 0x2020000) {
        uVar6 = uVar2 & 0xfff3fdfb;
        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {
          uVar6 = uVar2 & 0xfff1fdfb;
        }
      }
      else {
        uVar6 = uVar2 & 0xfff1fdfb;
        if ((*pbVar7 & 3) == 2) {
          uVar6 = uVar2 & 0xfffffdff;
        }
      }
      if (*(int *)(param_4 + 0x50) == 2) {
        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +
                             4) + 4) == 5) {
          uVar6 = uVar6 & 0xfffffefd | 0x200;
        }
        else {
          uVar6 = uVar6 & 0xfffffffc | 0x200;
        }
      }
      else if (*(int *)(param_4 + 0x50) == 3) {
        uVar6 = uVar6 & 0xfffffffe;
      }
      iVar1 = *(int *)(param_4 + 0x1c);
      if (iVar1 == 0) {
        FUN_00025a80();
        iVar1 = *(int *)(param_4 + 0x1c);
      }
      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);
      *(uint *)(iVar1 + 0x14) = uVar2;
      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {
        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;
        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;
        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);
        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))
                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);
        if ((uVar6 & 0x800000) != 0) {
          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);
        }
      }
      else {
        uVar5 = uVar6 & 0xfffffff7;
        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||
           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {
          uVar2 = uVar2 & 0xfe7fffff;
          uVar5 = uVar6 & 0xfe7ffff7;
        }
        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;
        uVar6 = uVar5;
      }
      if (((uVar6 & 0x10000000) != 0) &&
         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {
        *(undefined4 *)(param_4 + 0x3c) = 0x80;
      }
      iVar1 = *(int *)(param_4 + 0x1c);
      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {
        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);
      }
      iVar4 = *(int *)(
                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */
                      + unaff_EBP + 0x1fd6);
      *(int *)(param_2 + 0x54) = iVar1;
      if (iVar4 == 0) {
        iVar4 = *(int *)(iVar1 + 0xbc);
        *(int *)(iVar1 + 0xbc) = param_2;
        *(undefined4 *)(param_2 + 0xb8) = 0;
        *(int *)(param_2 + 0xbc) = iVar4;
        if (iVar4 == 0) {
          *(int *)(iVar1 + 0xb8) = param_2;
        }
        else {
          *(int *)(iVar4 + 0xb8) = param_2;
        }
      }
      puVar3 = (undefined4 *)FUN_00023860(0xc);
      puVar3[1] = 5;
      *puVar3 = 0;
      **(undefined4 **)(param_1 + 4) = puVar3;
      *(undefined4 **)(param_1 + 4) = puVar3;
      puVar3[2] = param_2;
      return;
    }
  }
  else if (*(int *)(param_2 + 0x54) == 0) {
    *(int *)(param_2 + 0x54) =
         *(int *)(
                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */
                 + unaff_EBP + 0x686) + 0x180;
    return;
  }
  return;
}


PUSH EBP
CALL 0x0001d3ba
ADD EBP,0x19ba0a
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x24]
LEA EDI,[EBP + 0xffebcf7e]
MOV EBX,dword ptr [EAX + 0x14]
MOV EAX,EBX
CALL 0x00021350
MOV ECX,dword ptr [ESP + 0x2c]
MOV ESI,dword ptr [ECX + 0x18]
MOV ECX,0xa
CMPSB.REPE ES:EDI,ESI
SETA DL
SBB DL,0x0
TEST EAX,EAX
JNZ 0x00026678
MOVSX EDX,DL
TEST EDX,EDX
JZ 0x00026678
MOV ESI,dword ptr [ESP + 0x28]
TEST ESI,ESI
JZ 0x00026662
LEA EAX,[EBP + 0x25e0]
SUB ESP,0x4
MOV EDX,dword ptr [EAX + 0x34]
MOV EDX,dword ptr [EDX + 0x4]
PUSH dword ptr [ESP + 0x28]
PUSH dword ptr [ESP + 0x30]
PUSH EAX
CALL dword ptr [EDX + 0x188]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002666d
MOV EAX,dword ptr [ESP + 0x24]
MOV ECX,dword ptr [EAX + 0x54]
TEST ECX,ECX
JZ 0x000266a0
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x24]
MOV EDI,dword ptr [EAX + 0x54]
TEST EDI,EDI
JNZ 0x0002666d
MOV EAX,dword ptr [EBP + 0xffffffd4]
MOV EDI,dword ptr [ESP + 0x24]
ADD EAX,0x180
MOV dword ptr [EDI + 0x54],EAX
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,EBX
LEA ESI,[EBP + 0x25e0]
AND EAX,0x2020000
CMP EAX,0x2020000
JZ 0x00026830
MOVZX EAX,byte ptr [ESI]
MOV EDX,EBX
AND EBX,0xfff1fdfb
AND DH,0xfd
AND EAX,0x3
CMP AL,0x2
CMOVZ EBX,EDX
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x50]
CMP EAX,0x2
JZ 0x00026850
MOV EDX,EBX
AND EDX,0xfffffffe
CMP EAX,0x3
CMOVZ EBX,EDX
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [EAX + 0x1c]
TEST EDX,EDX
JZ 0x000268e0
MOV EAX,EBX
MOVZX ECX,byte ptr [EDX + 0x18]
OR EAX,0xfffffff7
AND EAX,dword ptr [EDX + 0x14]
MOV dword ptr [EDX + 0x14],EAX
TEST CL,0x4
JZ 0x000267d0
MOV ECX,EBX
MOV ESI,EAX
AND ECX,0xfffffff7
XOR ESI,ECX
AND ESI,0x1800000
JZ 0x00026870
AND EAX,0xfe7fffff
AND EBX,0xfe7ffff7
OR EAX,EBX
MOV dword ptr [EDX + 0x14],EAX
AND EBX,0x10000000
JNZ 0x000268b0
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EAX + 0x58]
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x1c]
CMP EDX,dword ptr [EAX + 0x58]
JBE 0x00026757
MOV dword ptr [EAX + 0x58],EDX
MOV EDI,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EBP + 0x1924]
MOV dword ptr [EDI + 0x54],EAX
TEST EDX,EDX
JNZ 0x00026792
MOV EDX,dword ptr [EAX + 0xbc]
MOV dword ptr [EAX + 0xbc],EDI
MOV dword ptr [EDI + 0xb8],0x0
MOV dword ptr [EDI + 0xbc],EDX
TEST EDX,EDX
JZ 0x000268f8
MOV dword ptr [EDX + 0xb8],EDI
SUB ESP,0xc
PUSH 0xc
CALL 0x00023860
MOV EDI,dword ptr [ESP + 0x30]
MOV dword ptr [EAX + 0x4],0x5
MOV dword ptr [EAX],0x0
MOV EDX,dword ptr [EDI + 0x4]
MOV dword ptr [EDX],EAX
MOV dword ptr [EDI + 0x4],EAX
MOV EDI,dword ptr [ESP + 0x34]
ADD ESP,0x10
MOV dword ptr [EAX + 0x8],EDI
ADD ESP,0xc
POP EBX
POP ESI
POP EDI
POP EBP
RET
OR EAX,EBX
OR ECX,0x4
SUB ESP,0xc
MOV byte ptr [EDX + 0x18],CL
MOV dword ptr [EDX + 0x14],EAX
MOV EAX,dword ptr [ESI + 0x34]
MOV ECX,dword ptr [EAX + 0x4]
PUSH ESI
PUSH EDX
PUSH EAX
PUSH dword ptr [ESP + 0x3c]
MOV EAX,dword ptr [ESP + 0x40]
PUSH dword ptr [EAX + 0xac]
CALL dword ptr [ECX + 0xb0]
ADD ESP,0x20
TEST EBX,0x800000
JZ 0x00026735
MOV EAX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EAX + 0x90]
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [EAX + 0x90],EDX
JMP 0x00026735
MOV EAX,EBX
AND EBX,0xfff3fdfb
AND EAX,0xfff1fdfb
TEST byte ptr [ESI + 0x1],0x10
CMOVNZ EBX,EAX
JMP 0x000266ce
MOV EAX,dword ptr [ESI + 0x34]
MOV EAX,dword ptr [EAX + 0x4]
CMP dword ptr [EAX + 0x4],0x5
JZ 0x00026898
AND EBX,0xfffffffc
OR BH,0x2
JMP 0x000266e9
TEST EBX,0x800000
JZ 0x0002688e
MOV ESI,dword ptr [ESP + 0x24]
MOV EDI,dword ptr [ESI + 0x90]
CMP dword ptr [EDX + 0x90],EDI
JNZ 0x00026725
MOV EBX,ECX
JMP 0x00026730
AND EBX,0xfffffefd
OR BH,0x2
JMP 0x000266e9
SUB ESP,0xc
MOV EBX,EBP
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX + 0xac]
CALL 0x00016890
ADD ESP,0x10
CMP EAX,0x26
JNZ 0x00026741
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [EAX + 0x3c],0x80
JMP 0x00026741
MOV EDX,EBX
CALL 0x00025a80
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [EAX + 0x1c]
JMP 0x000266f8
MOV ESI,dword ptr [ESP + 0x24]
MOV dword ptr [EAX + 0xb8],ESI
JMP 0x00026792
(translation_unit "void FUN_000265f0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EBP;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  undefined1 uVar10;\n  byte bVar11;\n  \n  bVar11 = 0;\n  FUN_0001d3ba();\n  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;\n  uVar2 = *(uint *)(param_2 + 0x14);\n  iVar1 = FUN_00021350();\n  iVar4 = 10;\n  pbVar7 = *(byte **)(param_4 + 0x18);\n  pbVar8 = (byte *)(unaff_EBP + 0x58988);\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);\n  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_000265f0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EBP;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  undefined1 uVar10;\n  byte bVar11;\n  \n  bVar11 = 0;\n  FUN_0001d3ba();\n  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;\n  uVar2 = *(uint *)(param_2 + 0x14);\n  iVar1 = FUN_00021350();\n  iVar4 = 10;\n  pbVar7 = *(byte **)(param_4 + 0x18);\n  pbVar8 = (byte *)(unaff_EBP + 0x58988);\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);\n  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000265f0(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EBP;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  undefined1 uVar10;\n  byte bVar11;\n  \n  bVar11 = 0;\n  FUN_0001d3ba();\n  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;\n  uVar2 = *(uint *)(param_2 + 0x14);\n  iVar1 = FUN_00021350();\n  iVar4 = 10;\n  pbVar7 = *(byte **)(param_4 + 0x18);\n  pbVar8 = (byte *)(unaff_EBP + 0x58988);\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);\n  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "undefined1 uVar10;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "FUN_0001d3ba();" (call_expression "FUN_0001d3ba()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;" (assignment_expression "uVar9 = &stack0xfffffff0 < (undefined1 *)0xc" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0xc" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar10 = &stack0x00000000 == (undefined1 *)0x1c;" (assignment_expression "uVar10 = &stack0x00000000 == (undefined1 *)0x1c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x1c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x1c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar2 = *(uint *)(param_2 + 0x14);" (assignment_expression "uVar2 = *(uint *)(param_2 + 0x14)" identifier = (pointer_expression "*(uint *)(param_2 + 0x14)" * (cast_expression "(uint *)(param_2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = FUN_00021350();" (assignment_expression "iVar1 = FUN_00021350()" identifier = (call_expression "FUN_00021350()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar4 = 10;" (assignment_expression "iVar4 = 10" identifier = number_literal) ;) (expression_statement "pbVar7 = *(byte **)(param_4 + 0x18);" (assignment_expression "pbVar7 = *(byte **)(param_4 + 0x18)" identifier = (pointer_expression "*(byte **)(param_4 + 0x18)" * (cast_expression "(byte **)(param_4 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = (byte *)(unaff_EBP + 0x58988);" (assignment_expression "pbVar8 = (byte *)(unaff_EBP + 0x58988)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x58988)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x58988)" ( (binary_expression "unaff_EBP + 0x58988" identifier + number_literal) )))) ;) (do_statement "do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);" do (compound_statement "{\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar9 = *pbVar7 < *pbVar8;" (assignment_expression "uVar9 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "uVar10 = *pbVar7 == *pbVar8;" (assignment_expression "uVar10 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar10)" ( (cast_expression "(bool)uVar10" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" if (parenthesized_expression "((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9))" ( (binary_expression "(iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) && (parenthesized_expression "((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)" ( (binary_expression "(!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9" (parenthesized_expression "(!(bool)uVar9 && !(bool)uVar10)" ( (binary_expression "!(bool)uVar9 && !(bool)uVar10" (unary_expression "!(bool)uVar9" ! (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar10" ! (cast_expression "(bool)uVar10" ( (type_descriptor "bool" primitive_type) ) identifier))) )) != (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }" { (if_statement "if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }" if (parenthesized_expression "(((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0))" ( (binary_expression "((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)" (parenthesized_expression "((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0))" ( (binary_expression "(param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)" ( (comma_expression "iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0" (assignment_expression "iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2)" identifier = (call_expression "(**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))" ( (pointer_expression "**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" * (pointer_expression "*(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" * (cast_expression "(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" ( (binary_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188" (pointer_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" * (cast_expression "(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" ( (binary_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4" (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" * (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" ( (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019e01c.initial_loc" & (field_expression "fde_table_entry_0019e01c.initial_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(unaff_EBP + 0x19dfea,param_3,param_2)" ( (binary_expression "unaff_EBP + 0x19dfea" identifier + number_literal) , identifier , identifier )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" ( (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }" { (expression_statement "pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);" (assignment_expression "pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" identifier = (cast_expression "(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" ( (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019dfe4.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019dfe4.data_loc" & (field_expression "fde_table_entry_0019dfe4.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) ;) (if_statement "if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" if (parenthesized_expression "((uVar2 & 0x2020000) == 0x2020000)" ( (binary_expression "(uVar2 & 0x2020000) == 0x2020000" (parenthesized_expression "(uVar2 & 0x2020000)" ( (binary_expression "uVar2 & 0x2020000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }" { (expression_statement "uVar6 = uVar2 & 0xfff3fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff3fdfb" identifier = (binary_expression "uVar2 & 0xfff3fdfb" identifier & number_literal)) ;) (if_statement "if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }" if (parenthesized_expression "((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10)" ( (binary_expression "*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10" (pointer_expression "*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" * (cast_expression "(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" ( (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3" (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019dfe4.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019dfe4.data_loc" & (field_expression "fde_table_entry_0019dfe4.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }" { (expression_statement "uVar6 = uVar2 & 0xfff1fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff1fdfb" identifier = (binary_expression "uVar2 & 0xfff1fdfb" identifier & number_literal)) ;) })) }) (else_clause "else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" else (compound_statement "{\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" { (expression_statement "uVar6 = uVar2 & 0xfff1fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff1fdfb" identifier = (binary_expression "uVar2 & 0xfff1fdfb" identifier & number_literal)) ;) (if_statement "if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }" if (parenthesized_expression "((*pbVar7 & 3) == 2)" ( (binary_expression "(*pbVar7 & 3) == 2" (parenthesized_expression "(*pbVar7 & 3)" ( (binary_expression "*pbVar7 & 3" (pointer_expression "*pbVar7" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar6 = uVar2 & 0xfffffdff;\n        }" { (expression_statement "uVar6 = uVar2 & 0xfffffdff;" (assignment_expression "uVar6 = uVar2 & 0xfffffdff" identifier = (binary_expression "uVar2 & 0xfffffdff" identifier & number_literal)) ;) })) }))) (if_statement "if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" if (parenthesized_expression "(*(int *)(param_4 + 0x50) == 2)" ( (binary_expression "*(int *)(param_4 + 0x50) == 2" (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }" { (if_statement "if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" * (cast_expression "(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" ( (binary_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4" (pointer_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" * (cast_expression "(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" ( (binary_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4" (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" * (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" ( (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019e01c.initial_loc" & (field_expression "fde_table_entry_0019e01c.initial_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }" { (expression_statement "uVar6 = uVar6 & 0xfffffefd | 0x200;" (assignment_expression "uVar6 = uVar6 & 0xfffffefd | 0x200" identifier = (binary_expression "uVar6 & 0xfffffefd | 0x200" (binary_expression "uVar6 & 0xfffffefd" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" else (compound_statement "{\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" { (expression_statement "uVar6 = uVar6 & 0xfffffffc | 0x200;" (assignment_expression "uVar6 = uVar6 & 0xfffffffc | 0x200" identifier = (binary_expression "uVar6 & 0xfffffffc | 0x200" (binary_expression "uVar6 & 0xfffffffc" identifier & number_literal) | number_literal)) ;) }))) }) (else_clause "else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" else (if_statement "if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" if (parenthesized_expression "(*(int *)(param_4 + 0x50) == 3)" ( (binary_expression "*(int *)(param_4 + 0x50) == 3" (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar6 = uVar6 & 0xfffffffe;\n      }" { (expression_statement "uVar6 = uVar6 & 0xfffffffe;" (assignment_expression "uVar6 = uVar6 & 0xfffffffe" identifier = (binary_expression "uVar6 & 0xfffffffe" identifier & number_literal)) ;) })))) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" identifier = (pointer_expression "*(int *)(param_4 + 0x1c)" * (cast_expression "(int *)(param_4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }" { (expression_statement "FUN_00025a80();" (call_expression "FUN_00025a80()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" identifier = (pointer_expression "*(int *)(param_4 + 0x1c)" * (cast_expression "(int *)(param_4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);" (assignment_expression "uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14)" identifier = (binary_expression "(uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14)" (parenthesized_expression "(uVar6 | 0xfffffff7)" ( (binary_expression "uVar6 | 0xfffffff7" identifier | number_literal) )) & (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" if (parenthesized_expression "((*(byte *)(iVar1 + 0x18) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar1 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar1 + 0x18) & 4)" ( (binary_expression "*(byte *)(iVar1 + 0x18) & 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" * (cast_expression "(byte *)(iVar1 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }" { (expression_statement "*(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;" (assignment_expression "*(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" * (cast_expression "(byte *)(iVar1 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar1 + 0x18) | 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" * (cast_expression "(byte *)(iVar1 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2 | uVar6;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2 | uVar6" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar2 | uVar6" identifier | identifier)) ;) (expression_statement "iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);" (assignment_expression "iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" identifier = (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" * (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" ( (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019e01c.initial_loc" & (field_expression "fde_table_entry_0019e01c.initial_loc" identifier . field_identifier))) + identifier) + number_literal) ))))) ;) (expression_statement "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);" (call_expression "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7)" (parenthesized_expression "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))" ( (pointer_expression "**(code **)(*(int *)(iVar4 + 4) + 0xb0)" * (pointer_expression "*(code **)(*(int *)(iVar4 + 4) + 0xb0)" * (cast_expression "(code **)(*(int *)(iVar4 + 4) + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar4 + 4) + 0xb0)" ( (binary_expression "*(int *)(iVar4 + 4) + 0xb0" (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7)" ( (pointer_expression "*(undefined4 *)(param_2 + 0xac)" * (cast_expression "(undefined4 *)(param_2 + 0xac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) , identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }" if (parenthesized_expression "((uVar6 & 0x800000) != 0)" ( (binary_expression "(uVar6 & 0x800000) != 0" (parenthesized_expression "(uVar6 & 0x800000)" ( (binary_expression "uVar6 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }" { (expression_statement "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);" (assignment_expression "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90)" (pointer_expression "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90)" * (cast_expression "(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_4 + 0x1c) + 0x90)" ( (binary_expression "*(int *)(param_4 + 0x1c) + 0x90" (pointer_expression "*(int *)(param_4 + 0x1c)" * (cast_expression "(int *)(param_4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x90)" * (cast_expression "(undefined4 *)(param_2 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x90)" ( (binary_expression "param_2 + 0x90" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" else (compound_statement "{\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" { (expression_statement "uVar5 = uVar6 & 0xfffffff7;" (assignment_expression "uVar5 = uVar6 & 0xfffffff7" identifier = (binary_expression "uVar6 & 0xfffffff7" identifier & number_literal)) ;) (if_statement "if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }" if (parenthesized_expression "((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)))))" ( (binary_expression "(((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))" (parenthesized_expression "(((uVar2 ^ uVar5) & 0x1800000) != 0)" ( (binary_expression "((uVar2 ^ uVar5) & 0x1800000) != 0" (parenthesized_expression "((uVar2 ^ uVar5) & 0x1800000)" ( (binary_expression "(uVar2 ^ uVar5) & 0x1800000" (parenthesized_expression "(uVar2 ^ uVar5)" ( (binary_expression "uVar2 ^ uVar5" identifier ^ identifier) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))" ( (parenthesized_expression "((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)))" ( (binary_expression "(uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))" (binary_expression "(uVar6 & 0x800000) != 0" (parenthesized_expression "(uVar6 & 0x800000)" ( (binary_expression "uVar6 & 0x800000" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))" ( (binary_expression "*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)" (pointer_expression "*(int *)(iVar1 + 0x90)" * (cast_expression "(int *)(iVar1 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x90)" ( (binary_expression "iVar1 + 0x90" identifier + number_literal) )))) != (pointer_expression "*(int *)(param_2 + 0x90)" * (cast_expression "(int *)(param_2 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x90)" ( (binary_expression "param_2 + 0x90" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }" { (expression_statement "uVar2 = uVar2 & 0xfe7fffff;" (assignment_expression "uVar2 = uVar2 & 0xfe7fffff" identifier = (binary_expression "uVar2 & 0xfe7fffff" identifier & number_literal)) ;) (expression_statement "uVar5 = uVar6 & 0xfe7ffff7;" (assignment_expression "uVar5 = uVar6 & 0xfe7ffff7" identifier = (binary_expression "uVar6 & 0xfe7ffff7" identifier & number_literal)) ;) })) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2 | uVar5;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2 | uVar5" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar2 | uVar5" identifier | identifier)) ;) (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) }))) (if_statement "if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }" if (parenthesized_expression "(((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26))" ( (binary_expression "((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)" (parenthesized_expression "((uVar6 & 0x10000000) != 0)" ( (binary_expression "(uVar6 & 0x10000000) != 0" (parenthesized_expression "(uVar6 & 0x10000000)" ( (binary_expression "uVar6 & 0x10000000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)" ( (comma_expression "iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26" (assignment_expression "iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac))" identifier = (call_expression "bfd_get_arch(*(undefined4 *)(param_2 + 0xac))" identifier (argument_list "(*(undefined4 *)(param_2 + 0xac))" ( (pointer_expression "*(undefined4 *)(param_2 + 0xac)" * (cast_expression "(undefined4 *)(param_2 + 0xac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) )))) , (binary_expression "iVar1 == 0x26" identifier == number_literal)) ))) )) (compound_statement "{\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }" { (expression_statement "*(undefined4 *)(param_4 + 0x3c) = 0x80;" (assignment_expression "*(undefined4 *)(param_4 + 0x3c) = 0x80" (pointer_expression "*(undefined4 *)(param_4 + 0x3c)" * (cast_expression "(undefined4 *)(param_4 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3c)" ( (binary_expression "param_4 + 0x3c" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" identifier = (pointer_expression "*(int *)(param_4 + 0x1c)" * (cast_expression "(int *)(param_4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }" if (parenthesized_expression "(*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58))" ( (binary_expression "*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)" (pointer_expression "*(uint *)(iVar1 + 0x58)" * (cast_expression "(uint *)(iVar1 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_2 + 0x58)" * (cast_expression "(uint *)(param_2 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }" { (expression_statement "*(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);" (assignment_expression "*(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58)" (pointer_expression "*(uint *)(iVar1 + 0x58)" * (cast_expression "(uint *)(iVar1 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) )))) = (pointer_expression "*(uint *)(param_2 + 0x58)" * (cast_expression "(uint *)(param_2 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) ;) })) (expression_statement "iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6);" (assignment_expression "iVar4 = *(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6)" identifier = (pointer_expression "*(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6)" * (cast_expression "(int *)(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(\n                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6)" ( (binary_expression ""/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP + 0x1fd6" (binary_expression ""/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                      + unaff_EBP" (string_literal ""/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") comment + identifier) + number_literal) ))))) ;) (expression_statement "*(int *)(param_2 + 0x54) = iVar1;" (assignment_expression "*(int *)(param_2 + 0x54) = iVar1" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }" { (expression_statement "iVar4 = *(int *)(iVar1 + 0xbc);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0xbc)" identifier = (pointer_expression "*(int *)(iVar1 + 0xbc)" * (cast_expression "(int *)(iVar1 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xbc)" ( (binary_expression "iVar1 + 0xbc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar1 + 0xbc) = param_2;" (assignment_expression "*(int *)(iVar1 + 0xbc) = param_2" (pointer_expression "*(int *)(iVar1 + 0xbc)" * (cast_expression "(int *)(iVar1 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xbc)" ( (binary_expression "iVar1 + 0xbc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_2 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xb8)" * (cast_expression "(undefined4 *)(param_2 + 0xb8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb8)" ( (binary_expression "param_2 + 0xb8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_2 + 0xbc) = iVar4;" (assignment_expression "*(int *)(param_2 + 0xbc) = iVar4" (pointer_expression "*(int *)(param_2 + 0xbc)" * (cast_expression "(int *)(param_2 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbc)" ( (binary_expression "param_2 + 0xbc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }" { (expression_statement "*(int *)(iVar1 + 0xb8) = param_2;" (assignment_expression "*(int *)(iVar1 + 0xb8) = param_2" (pointer_expression "*(int *)(iVar1 + 0xb8)" * (cast_expression "(int *)(iVar1 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xb8)" ( (binary_expression "iVar1 + 0xb8" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" else (compound_statement "{\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" { (expression_statement "*(int *)(iVar4 + 0xb8) = param_2;" (assignment_expression "*(int *)(iVar4 + 0xb8) = param_2" (pointer_expression "*(int *)(iVar4 + 0xb8)" * (cast_expression "(int *)(iVar4 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xb8)" ( (binary_expression "iVar4 + 0xb8" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "puVar3 = (undefined4 *)FUN_00023860(0xc);" (assignment_expression "puVar3 = (undefined4 *)FUN_00023860(0xc)" identifier = (cast_expression "(undefined4 *)FUN_00023860(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023860(0xc)" identifier (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "puVar3[1] = 5;" (assignment_expression "puVar3[1] = 5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "**(undefined4 **)(param_1 + 4) = puVar3;" (assignment_expression "**(undefined4 **)(param_1 + 4) = puVar3" (pointer_expression "**(undefined4 **)(param_1 + 4)" * (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 4) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 4) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3[2] = param_2;" (assignment_expression "puVar3[2] = param_2" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" else (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" ( (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" { (expression_statement "*(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180;" (assignment_expression "*(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) = (binary_expression "*(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686) + 0x180" (pointer_expression "*(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686)" * (cast_expression "(int *)(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(\n                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686)" ( (binary_expression ""/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP + 0x686" (binary_expression ""/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */\n                 + unaff_EBP" (string_literal ""/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..."" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") comment + identifier) + number_literal) )))) + number_literal)) ;) (return_statement "return;" return ;) })))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bp replaced with injection: get_pc_thunk.bp */\n/* WARNING: Unknown calling convention */\n\nvoid lang_add_section(lang_statement_list_type *ptr,asection *section,flag_info *sflag_info,\n                     lang_output_section_statement_type *output)\n\n{\n  asection *section_00;\n  bfd_section *pbVar1;\n  bfd_section *pbVar2;\n  bfd_boolean bVar3;\n  uint uVar4;\n  lang_statement_union *plVar5;\n  int iVar6;\n  uint uVar7;\n  sec_ptr pbVar8;\n  uint flags;\n  byte *pbVar9;\n  byte *pbVar10;\n  undefined1 uVar11;\n  undefined1 uVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  uVar11 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x1c;\n  section_00 = (asection *)section->flags;\n  bVar3 = lang_discard_section_p(section_00);\n  iVar6 = 10;\n  pbVar9 = (byte *)output->name;\n  pbVar10 = (byte *)"/DISCARD/";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    uVar11 = *pbVar9 < *pbVar10;\n    uVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n  } while ((bool)uVar12);\n  if ((bVar3 == 0) && ((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11)) {\n    if (((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)) &&\n       (section->output_section == (bfd_section *)0x0)) {\n      if (((uint)section_00 & 0x2020000) == 0x2020000) {\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }\n      else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }\n      if (output->sectype == noload_section) {\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }\n      else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }\n      pbVar8 = output->bfd_section;\n      if (pbVar8 == (sec_ptr)0x0) {\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }\n      uVar4 = (flags | 0xfffffff7) & pbVar8->flags;\n      pbVar8->flags = uVar4;\n      if ((pbVar8->field_0x18 & 4) == 0) {\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }\n      else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }\n      if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {\n        output->block_value = 0x80;\n      }\n      pbVar1 = output->bfd_section;\n      if (pbVar1->alignment_power < section->alignment_power) {\n        pbVar1->alignment_power = section->alignment_power;\n      }\n      bVar3 = map_head_is_link_order;\n      section->output_section = pbVar1;\n      if (bVar3 == 0) {\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }\n      plVar5 = (lang_statement_union *)stat_alloc(0xc);\n      (plVar5->header).type = lang_input_section_enum;\n      (plVar5->header).next = (lang_statement_union *)0x0;\n      *ptr->tail = plVar5;\n      ptr->tail = (lang_statement_union **)plVar5;\n      (plVar5->input_section).section = section;\n      return;\n    }\n  }\n  else if (section->output_section == (bfd_section *)0x0) {\n    section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n    return;\n  }\n  return;\n}\n\n" comment comment (function_definition "void lang_add_section(lang_statement_list_type *ptr,asection *section,flag_info *sflag_info,\n                     lang_output_section_statement_type *output)\n\n{\n  asection *section_00;\n  bfd_section *pbVar1;\n  bfd_section *pbVar2;\n  bfd_boolean bVar3;\n  uint uVar4;\n  lang_statement_union *plVar5;\n  int iVar6;\n  uint uVar7;\n  sec_ptr pbVar8;\n  uint flags;\n  byte *pbVar9;\n  byte *pbVar10;\n  undefined1 uVar11;\n  undefined1 uVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  uVar11 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x1c;\n  section_00 = (asection *)section->flags;\n  bVar3 = lang_discard_section_p(section_00);\n  iVar6 = 10;\n  pbVar9 = (byte *)output->name;\n  pbVar10 = (byte *)"/DISCARD/";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    uVar11 = *pbVar9 < *pbVar10;\n    uVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n  } while ((bool)uVar12);\n  if ((bVar3 == 0) && ((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11)) {\n    if (((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)) &&\n       (section->output_section == (bfd_section *)0x0)) {\n      if (((uint)section_00 & 0x2020000) == 0x2020000) {\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }\n      else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }\n      if (output->sectype == noload_section) {\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }\n      else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }\n      pbVar8 = output->bfd_section;\n      if (pbVar8 == (sec_ptr)0x0) {\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }\n      uVar4 = (flags | 0xfffffff7) & pbVar8->flags;\n      pbVar8->flags = uVar4;\n      if ((pbVar8->field_0x18 & 4) == 0) {\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }\n      else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }\n      if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {\n        output->block_value = 0x80;\n      }\n      pbVar1 = output->bfd_section;\n      if (pbVar1->alignment_power < section->alignment_power) {\n        pbVar1->alignment_power = section->alignment_power;\n      }\n      bVar3 = map_head_is_link_order;\n      section->output_section = pbVar1;\n      if (bVar3 == 0) {\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }\n      plVar5 = (lang_statement_union *)stat_alloc(0xc);\n      (plVar5->header).type = lang_input_section_enum;\n      (plVar5->header).next = (lang_statement_union *)0x0;\n      *ptr->tail = plVar5;\n      ptr->tail = (lang_statement_union **)plVar5;\n      (plVar5->input_section).section = section;\n      return;\n    }\n  }\n  else if (section->output_section == (bfd_section *)0x0) {\n    section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "lang_add_section(lang_statement_list_type *ptr,asection *section,flag_info *sflag_info,\n                     lang_output_section_statement_type *output)" identifier (parameter_list "(lang_statement_list_type *ptr,asection *section,flag_info *sflag_info,\n                     lang_output_section_statement_type *output)" ( (parameter_declaration "lang_statement_list_type *ptr" type_identifier (pointer_declarator "*ptr" * identifier)) , (parameter_declaration "asection *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "flag_info *sflag_info" type_identifier (pointer_declarator "*sflag_info" * identifier)) , (parameter_declaration "lang_output_section_statement_type *output" type_identifier (pointer_declarator "*output" * identifier)) ))) (compound_statement "{\n  asection *section_00;\n  bfd_section *pbVar1;\n  bfd_section *pbVar2;\n  bfd_boolean bVar3;\n  uint uVar4;\n  lang_statement_union *plVar5;\n  int iVar6;\n  uint uVar7;\n  sec_ptr pbVar8;\n  uint flags;\n  byte *pbVar9;\n  byte *pbVar10;\n  undefined1 uVar11;\n  undefined1 uVar12;\n  byte bVar13;\n  \n  bVar13 = 0;\n  uVar11 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar12 = &stack0x00000000 == (undefined1 *)0x1c;\n  section_00 = (asection *)section->flags;\n  bVar3 = lang_discard_section_p(section_00);\n  iVar6 = 10;\n  pbVar9 = (byte *)output->name;\n  pbVar10 = (byte *)"/DISCARD/";\n  do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    uVar11 = *pbVar9 < *pbVar10;\n    uVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n  } while ((bool)uVar12);\n  if ((bVar3 == 0) && ((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11)) {\n    if (((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)) &&\n       (section->output_section == (bfd_section *)0x0)) {\n      if (((uint)section_00 & 0x2020000) == 0x2020000) {\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }\n      else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }\n      if (output->sectype == noload_section) {\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }\n      else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }\n      pbVar8 = output->bfd_section;\n      if (pbVar8 == (sec_ptr)0x0) {\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }\n      uVar4 = (flags | 0xfffffff7) & pbVar8->flags;\n      pbVar8->flags = uVar4;\n      if ((pbVar8->field_0x18 & 4) == 0) {\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }\n      else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }\n      if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {\n        output->block_value = 0x80;\n      }\n      pbVar1 = output->bfd_section;\n      if (pbVar1->alignment_power < section->alignment_power) {\n        pbVar1->alignment_power = section->alignment_power;\n      }\n      bVar3 = map_head_is_link_order;\n      section->output_section = pbVar1;\n      if (bVar3 == 0) {\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }\n      plVar5 = (lang_statement_union *)stat_alloc(0xc);\n      (plVar5->header).type = lang_input_section_enum;\n      (plVar5->header).next = (lang_statement_union *)0x0;\n      *ptr->tail = plVar5;\n      ptr->tail = (lang_statement_union **)plVar5;\n      (plVar5->input_section).section = section;\n      return;\n    }\n  }\n  else if (section->output_section == (bfd_section *)0x0) {\n    section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n    return;\n  }\n  return;\n}" { (declaration "asection *section_00;" type_identifier (pointer_declarator "*section_00" * identifier) ;) (declaration "bfd_section *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "bfd_section *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "bfd_boolean bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "lang_statement_union *plVar5;" type_identifier (pointer_declarator "*plVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "sec_ptr pbVar8;" type_identifier identifier ;) (declaration "uint flags;" type_identifier identifier ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "undefined1 uVar11;" type_identifier identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (expression_statement "bVar13 = 0;" (assignment_expression "bVar13 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = &stack0xfffffff0 < (undefined1 *)0xc;" (assignment_expression "uVar11 = &stack0xfffffff0 < (undefined1 *)0xc" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0xc" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar12 = &stack0x00000000 == (undefined1 *)0x1c;" (assignment_expression "uVar12 = &stack0x00000000 == (undefined1 *)0x1c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x1c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x1c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "section_00 = (asection *)section->flags;" (assignment_expression "section_00 = (asection *)section->flags" identifier = (cast_expression "(asection *)section->flags" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "section->flags" identifier -> field_identifier))) ;) (expression_statement "bVar3 = lang_discard_section_p(section_00);" (assignment_expression "bVar3 = lang_discard_section_p(section_00)" identifier = (call_expression "lang_discard_section_p(section_00)" identifier (argument_list "(section_00)" ( identifier )))) ;) (expression_statement "iVar6 = 10;" (assignment_expression "iVar6 = 10" identifier = number_literal) ;) (expression_statement "pbVar9 = (byte *)output->name;" (assignment_expression "pbVar9 = (byte *)output->name" identifier = (cast_expression "(byte *)output->name" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "output->name" identifier -> field_identifier))) ;) (expression_statement "pbVar10 = (byte *)"/DISCARD/";" (assignment_expression "pbVar10 = (byte *)"/DISCARD/"" identifier = (cast_expression "(byte *)"/DISCARD/"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""/DISCARD/"" " string_content "))) ;) (do_statement "do {\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    uVar11 = *pbVar9 < *pbVar10;\n    uVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n  } while ((bool)uVar12);" do (compound_statement "{\n    if (iVar6 == 0) break;\n    iVar6 = iVar6 + -1;\n    uVar11 = *pbVar9 < *pbVar10;\n    uVar12 = *pbVar9 == *pbVar10;\n    pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;\n    pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;\n  }" { (if_statement "if (iVar6 == 0) break;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "uVar11 = *pbVar9 < *pbVar10;" (assignment_expression "uVar11 = *pbVar9 < *pbVar10" identifier = (binary_expression "*pbVar9 < *pbVar10" (pointer_expression "*pbVar9" * identifier) < (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "uVar12 = *pbVar9 == *pbVar10;" (assignment_expression "uVar12 = *pbVar9 == *pbVar10" identifier = (binary_expression "*pbVar9 == *pbVar10" (pointer_expression "*pbVar9" * identifier) == (pointer_expression "*pbVar10" * identifier))) ;) (expression_statement "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar9 = pbVar9 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar9 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar9 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1;" (assignment_expression "pbVar10 = pbVar10 + (uint)bVar13 * -2 + 1" identifier = (binary_expression "pbVar10 + (uint)bVar13 * -2 + 1" (binary_expression "pbVar10 + (uint)bVar13 * -2" identifier + (binary_expression "(uint)bVar13 * -2" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar12)" ( (cast_expression "(bool)uVar12" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((bVar3 == 0) && ((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11)) {\n    if (((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)) &&\n       (section->output_section == (bfd_section *)0x0)) {\n      if (((uint)section_00 & 0x2020000) == 0x2020000) {\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }\n      else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }\n      if (output->sectype == noload_section) {\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }\n      else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }\n      pbVar8 = output->bfd_section;\n      if (pbVar8 == (sec_ptr)0x0) {\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }\n      uVar4 = (flags | 0xfffffff7) & pbVar8->flags;\n      pbVar8->flags = uVar4;\n      if ((pbVar8->field_0x18 & 4) == 0) {\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }\n      else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }\n      if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {\n        output->block_value = 0x80;\n      }\n      pbVar1 = output->bfd_section;\n      if (pbVar1->alignment_power < section->alignment_power) {\n        pbVar1->alignment_power = section->alignment_power;\n      }\n      bVar3 = map_head_is_link_order;\n      section->output_section = pbVar1;\n      if (bVar3 == 0) {\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }\n      plVar5 = (lang_statement_union *)stat_alloc(0xc);\n      (plVar5->header).type = lang_input_section_enum;\n      (plVar5->header).next = (lang_statement_union *)0x0;\n      *ptr->tail = plVar5;\n      ptr->tail = (lang_statement_union **)plVar5;\n      (plVar5->input_section).section = section;\n      return;\n    }\n  }\n  else if (section->output_section == (bfd_section *)0x0) {\n    section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n    return;\n  }" if (parenthesized_expression "((bVar3 == 0) && ((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11))" ( (binary_expression "(bVar3 == 0) && ((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11)" (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11)" ( (binary_expression "(!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11" (parenthesized_expression "(!(bool)uVar11 && !(bool)uVar12)" ( (binary_expression "!(bool)uVar11 && !(bool)uVar12" (unary_expression "!(bool)uVar11" ! (cast_expression "(bool)uVar11" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar12" ! (cast_expression "(bool)uVar12" ( (type_descriptor "bool" primitive_type) ) identifier))) )) != (cast_expression "(bool)uVar11" ( (type_descriptor "bool" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    if (((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)) &&\n       (section->output_section == (bfd_section *)0x0)) {\n      if (((uint)section_00 & 0x2020000) == 0x2020000) {\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }\n      else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }\n      if (output->sectype == noload_section) {\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }\n      else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }\n      pbVar8 = output->bfd_section;\n      if (pbVar8 == (sec_ptr)0x0) {\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }\n      uVar4 = (flags | 0xfffffff7) & pbVar8->flags;\n      pbVar8->flags = uVar4;\n      if ((pbVar8->field_0x18 & 4) == 0) {\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }\n      else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }\n      if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {\n        output->block_value = 0x80;\n      }\n      pbVar1 = output->bfd_section;\n      if (pbVar1->alignment_power < section->alignment_power) {\n        pbVar1->alignment_power = section->alignment_power;\n      }\n      bVar3 = map_head_is_link_order;\n      section->output_section = pbVar1;\n      if (bVar3 == 0) {\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }\n      plVar5 = (lang_statement_union *)stat_alloc(0xc);\n      (plVar5->header).type = lang_input_section_enum;\n      (plVar5->header).next = (lang_statement_union *)0x0;\n      *ptr->tail = plVar5;\n      ptr->tail = (lang_statement_union **)plVar5;\n      (plVar5->input_section).section = section;\n      return;\n    }\n  }" { (if_statement "if (((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)) &&\n       (section->output_section == (bfd_section *)0x0)) {\n      if (((uint)section_00 & 0x2020000) == 0x2020000) {\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }\n      else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }\n      if (output->sectype == noload_section) {\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }\n      else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }\n      pbVar8 = output->bfd_section;\n      if (pbVar8 == (sec_ptr)0x0) {\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }\n      uVar4 = (flags | 0xfffffff7) & pbVar8->flags;\n      pbVar8->flags = uVar4;\n      if ((pbVar8->field_0x18 & 4) == 0) {\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }\n      else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }\n      if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {\n        output->block_value = 0x80;\n      }\n      pbVar1 = output->bfd_section;\n      if (pbVar1->alignment_power < section->alignment_power) {\n        pbVar1->alignment_power = section->alignment_power;\n      }\n      bVar3 = map_head_is_link_order;\n      section->output_section = pbVar1;\n      if (bVar3 == 0) {\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }\n      plVar5 = (lang_statement_union *)stat_alloc(0xc);\n      (plVar5->header).type = lang_input_section_enum;\n      (plVar5->header).next = (lang_statement_union *)0x0;\n      *ptr->tail = plVar5;\n      ptr->tail = (lang_statement_union **)plVar5;\n      (plVar5->input_section).section = section;\n      return;\n    }" if (parenthesized_expression "(((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)) &&\n       (section->output_section == (bfd_section *)0x0))" ( (binary_expression "((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)) &&\n       (section->output_section == (bfd_section *)0x0)" (parenthesized_expression "((sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0))" ( (binary_expression "(sflag_info == (flag_info *)0x0) ||\n        (bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)" (parenthesized_expression "(sflag_info == (flag_info *)0x0)" ( (binary_expression "sflag_info == (flag_info *)0x0" identifier == (cast_expression "(flag_info *)0x0" ( (type_descriptor "flag_info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0)" ( (comma_expression "bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section), bVar3 != 0" (assignment_expression "bVar3 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section)" identifier = (call_expression "(*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)\n                           (&link_info,sflag_info,section)" (parenthesized_expression "(*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)" ( (pointer_expression "*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags" * (field_expression "(link_info.output_bfd)->xvec->_bfd_lookup_section_flags" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(&link_info,sflag_info,section)" ( (pointer_expression "&link_info" & identifier) , identifier , identifier )))) , (binary_expression "bVar3 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(section->output_section == (bfd_section *)0x0)" ( (binary_expression "section->output_section == (bfd_section *)0x0" (field_expression "section->output_section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      if (((uint)section_00 & 0x2020000) == 0x2020000) {\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }\n      else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }\n      if (output->sectype == noload_section) {\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }\n      else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }\n      pbVar8 = output->bfd_section;\n      if (pbVar8 == (sec_ptr)0x0) {\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }\n      uVar4 = (flags | 0xfffffff7) & pbVar8->flags;\n      pbVar8->flags = uVar4;\n      if ((pbVar8->field_0x18 & 4) == 0) {\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }\n      else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }\n      if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {\n        output->block_value = 0x80;\n      }\n      pbVar1 = output->bfd_section;\n      if (pbVar1->alignment_power < section->alignment_power) {\n        pbVar1->alignment_power = section->alignment_power;\n      }\n      bVar3 = map_head_is_link_order;\n      section->output_section = pbVar1;\n      if (bVar3 == 0) {\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }\n      plVar5 = (lang_statement_union *)stat_alloc(0xc);\n      (plVar5->header).type = lang_input_section_enum;\n      (plVar5->header).next = (lang_statement_union *)0x0;\n      *ptr->tail = plVar5;\n      ptr->tail = (lang_statement_union **)plVar5;\n      (plVar5->input_section).section = section;\n      return;\n    }" { (if_statement "if (((uint)section_00 & 0x2020000) == 0x2020000) {\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }\n      else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }" if (parenthesized_expression "(((uint)section_00 & 0x2020000) == 0x2020000)" ( (binary_expression "((uint)section_00 & 0x2020000) == 0x2020000" (parenthesized_expression "((uint)section_00 & 0x2020000)" ( (binary_expression "(uint)section_00 & 0x2020000" (cast_expression "(uint)section_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        flags = (uint)section_00 & 0xfff3fdfb;\n        if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }\n      }" { (expression_statement "flags = (uint)section_00 & 0xfff3fdfb;" (assignment_expression "flags = (uint)section_00 & 0xfff3fdfb" identifier = (binary_expression "(uint)section_00 & 0xfff3fdfb" (cast_expression "(uint)section_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((link_info._1_1_ & 0x10) != 0) {\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }" if (parenthesized_expression "((link_info._1_1_ & 0x10) != 0)" ( (binary_expression "(link_info._1_1_ & 0x10) != 0" (parenthesized_expression "(link_info._1_1_ & 0x10)" ( (binary_expression "link_info._1_1_ & 0x10" (field_expression "link_info._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          flags = (uint)section_00 & 0xfff1fdfb;\n        }" { (expression_statement "flags = (uint)section_00 & 0xfff1fdfb;" (assignment_expression "flags = (uint)section_00 & 0xfff1fdfb" identifier = (binary_expression "(uint)section_00 & 0xfff1fdfb" (cast_expression "(uint)section_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) })) }) (else_clause "else {\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }" else (compound_statement "{\n        flags = (uint)section_00 & 0xfff1fdfb;\n        if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }\n      }" { (expression_statement "flags = (uint)section_00 & 0xfff1fdfb;" (assignment_expression "flags = (uint)section_00 & 0xfff1fdfb" identifier = (binary_expression "(uint)section_00 & 0xfff1fdfb" (cast_expression "(uint)section_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) (if_statement "if ((link_info._0_1_ & 3) == 2) {\n          flags = (uint)section_00 & 0xfffffdff;\n        }" if (parenthesized_expression "((link_info._0_1_ & 3) == 2)" ( (binary_expression "(link_info._0_1_ & 3) == 2" (parenthesized_expression "(link_info._0_1_ & 3)" ( (binary_expression "link_info._0_1_ & 3" (field_expression "link_info._0_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          flags = (uint)section_00 & 0xfffffdff;\n        }" { (expression_statement "flags = (uint)section_00 & 0xfffffdff;" (assignment_expression "flags = (uint)section_00 & 0xfffffdff" identifier = (binary_expression "(uint)section_00 & 0xfffffdff" (cast_expression "(uint)section_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) })) }))) (if_statement "if (output->sectype == noload_section) {\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }\n      else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }" if (parenthesized_expression "(output->sectype == noload_section)" ( (binary_expression "output->sectype == noload_section" (field_expression "output->sectype" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }\n      }" { (if_statement "if ((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour) {\n          flags = flags & 0xfffffefd | 0x200;\n        }\n        else {\n          flags = flags & 0xfffffffc | 0x200;\n        }" if (parenthesized_expression "((link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour)" ( (binary_expression "(link_info.output_bfd)->xvec->flavour == bfd_target_elf_flavour" (field_expression "(link_info.output_bfd)->xvec->flavour" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n          flags = flags & 0xfffffefd | 0x200;\n        }" { (expression_statement "flags = flags & 0xfffffefd | 0x200;" (assignment_expression "flags = flags & 0xfffffefd | 0x200" identifier = (binary_expression "flags & 0xfffffefd | 0x200" (binary_expression "flags & 0xfffffefd" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n          flags = flags & 0xfffffffc | 0x200;\n        }" else (compound_statement "{\n          flags = flags & 0xfffffffc | 0x200;\n        }" { (expression_statement "flags = flags & 0xfffffffc | 0x200;" (assignment_expression "flags = flags & 0xfffffffc | 0x200" identifier = (binary_expression "flags & 0xfffffffc | 0x200" (binary_expression "flags & 0xfffffffc" identifier & number_literal) | number_literal)) ;) }))) }) (else_clause "else if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }" else (if_statement "if (output->sectype == noalloc_section) {\n        flags = flags & 0xfffffffe;\n      }" if (parenthesized_expression "(output->sectype == noalloc_section)" ( (binary_expression "output->sectype == noalloc_section" (field_expression "output->sectype" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        flags = flags & 0xfffffffe;\n      }" { (expression_statement "flags = flags & 0xfffffffe;" (assignment_expression "flags = flags & 0xfffffffe" identifier = (binary_expression "flags & 0xfffffffe" identifier & number_literal)) ;) })))) (expression_statement "pbVar8 = output->bfd_section;" (assignment_expression "pbVar8 = output->bfd_section" identifier = (field_expression "output->bfd_section" identifier -> field_identifier)) ;) (if_statement "if (pbVar8 == (sec_ptr)0x0) {\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }" if (parenthesized_expression "(pbVar8 == (sec_ptr)0x0)" ( (binary_expression "pbVar8 == (sec_ptr)0x0" identifier == (cast_expression "(sec_ptr)0x0" ( (type_descriptor "sec_ptr" type_identifier) ) number_literal)) )) (compound_statement "{\n        init_os(output,flags);\n        pbVar8 = output->bfd_section;\n      }" { (expression_statement "init_os(output,flags);" (call_expression "init_os(output,flags)" identifier (argument_list "(output,flags)" ( identifier , identifier ))) ;) (expression_statement "pbVar8 = output->bfd_section;" (assignment_expression "pbVar8 = output->bfd_section" identifier = (field_expression "output->bfd_section" identifier -> field_identifier)) ;) })) (expression_statement "uVar4 = (flags | 0xfffffff7) & pbVar8->flags;" (assignment_expression "uVar4 = (flags | 0xfffffff7) & pbVar8->flags" identifier = (binary_expression "(flags | 0xfffffff7) & pbVar8->flags" (parenthesized_expression "(flags | 0xfffffff7)" ( (binary_expression "flags | 0xfffffff7" identifier | number_literal) )) & (field_expression "pbVar8->flags" identifier -> field_identifier))) ;) (expression_statement "pbVar8->flags = uVar4;" (assignment_expression "pbVar8->flags = uVar4" (field_expression "pbVar8->flags" identifier -> field_identifier) = identifier) ;) (if_statement "if ((pbVar8->field_0x18 & 4) == 0) {\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }\n      else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }" if (parenthesized_expression "((pbVar8->field_0x18 & 4) == 0)" ( (binary_expression "(pbVar8->field_0x18 & 4) == 0" (parenthesized_expression "(pbVar8->field_0x18 & 4)" ( (binary_expression "pbVar8->field_0x18 & 4" (field_expression "pbVar8->field_0x18" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        pbVar8->field_0x18 = pbVar8->field_0x18 | 4;\n        pbVar8->flags = uVar4 | flags;\n        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);\n        if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }\n      }" { (expression_statement "pbVar8->field_0x18 = pbVar8->field_0x18 | 4;" (assignment_expression "pbVar8->field_0x18 = pbVar8->field_0x18 | 4" (field_expression "pbVar8->field_0x18" identifier -> field_identifier) = (binary_expression "pbVar8->field_0x18 | 4" (field_expression "pbVar8->field_0x18" identifier -> field_identifier) | number_literal)) ;) (expression_statement "pbVar8->flags = uVar4 | flags;" (assignment_expression "pbVar8->flags = uVar4 | flags" (field_expression "pbVar8->flags" identifier -> field_identifier) = (binary_expression "uVar4 | flags" identifier | identifier)) ;) (expression_statement "(*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info);" (call_expression "(*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)\n                  (section->owner,section,link_info.output_bfd,pbVar8,&link_info)" (parenthesized_expression "(*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)" ( (pointer_expression "*(link_info.output_bfd)->xvec->_bfd_init_private_section_data" * (field_expression "(link_info.output_bfd)->xvec->_bfd_init_private_section_data" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(section->owner,section,link_info.output_bfd,pbVar8,&link_info)" ( (field_expression "section->owner" identifier -> field_identifier) , identifier , (field_expression "link_info.output_bfd" identifier . field_identifier) , identifier , (pointer_expression "&link_info" & identifier) ))) ;) (if_statement "if ((flags & 0x800000) != 0) {\n          output->bfd_section->entsize = section->entsize;\n        }" if (parenthesized_expression "((flags & 0x800000) != 0)" ( (binary_expression "(flags & 0x800000) != 0" (parenthesized_expression "(flags & 0x800000)" ( (binary_expression "flags & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          output->bfd_section->entsize = section->entsize;\n        }" { (expression_statement "output->bfd_section->entsize = section->entsize;" (assignment_expression "output->bfd_section->entsize = section->entsize" (field_expression "output->bfd_section->entsize" (field_expression "output->bfd_section" identifier -> field_identifier) -> field_identifier) = (field_expression "section->entsize" identifier -> field_identifier)) ;) })) }) (else_clause "else {\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }" else (compound_statement "{\n        uVar7 = flags & 0xfffffff7;\n        if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }\n        pbVar8->flags = uVar4 | uVar7;\n        flags = uVar7;\n      }" { (expression_statement "uVar7 = flags & 0xfffffff7;" (assignment_expression "uVar7 = flags & 0xfffffff7" identifier = (binary_expression "flags & 0xfffffff7" identifier & number_literal)) ;) (if_statement "if ((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))) {\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }" if (parenthesized_expression "((((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize))))" ( (binary_expression "(((uVar4 ^ uVar7) & 0x1800000) != 0) ||\n           (((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))" (parenthesized_expression "(((uVar4 ^ uVar7) & 0x1800000) != 0)" ( (binary_expression "((uVar4 ^ uVar7) & 0x1800000) != 0" (parenthesized_expression "((uVar4 ^ uVar7) & 0x1800000)" ( (binary_expression "(uVar4 ^ uVar7) & 0x1800000" (parenthesized_expression "(uVar4 ^ uVar7)" ( (binary_expression "uVar4 ^ uVar7" identifier ^ identifier) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)))" ( (parenthesized_expression "((flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize))" ( (binary_expression "(flags & 0x800000) != 0 && (pbVar8->entsize != section->entsize)" (binary_expression "(flags & 0x800000) != 0" (parenthesized_expression "(flags & 0x800000)" ( (binary_expression "flags & 0x800000" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(pbVar8->entsize != section->entsize)" ( (binary_expression "pbVar8->entsize != section->entsize" (field_expression "pbVar8->entsize" identifier -> field_identifier) != (field_expression "section->entsize" identifier -> field_identifier)) ))) )) ))) )) (compound_statement "{\n          uVar4 = uVar4 & 0xfe7fffff;\n          uVar7 = flags & 0xfe7ffff7;\n        }" { (expression_statement "uVar4 = uVar4 & 0xfe7fffff;" (assignment_expression "uVar4 = uVar4 & 0xfe7fffff" identifier = (binary_expression "uVar4 & 0xfe7fffff" identifier & number_literal)) ;) (expression_statement "uVar7 = flags & 0xfe7ffff7;" (assignment_expression "uVar7 = flags & 0xfe7ffff7" identifier = (binary_expression "flags & 0xfe7ffff7" identifier & number_literal)) ;) })) (expression_statement "pbVar8->flags = uVar4 | uVar7;" (assignment_expression "pbVar8->flags = uVar4 | uVar7" (field_expression "pbVar8->flags" identifier -> field_identifier) = (binary_expression "uVar4 | uVar7" identifier | identifier)) ;) (expression_statement "flags = uVar7;" (assignment_expression "flags = uVar7" identifier = identifier) ;) }))) (if_statement "if (((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)) {\n        output->block_value = 0x80;\n      }" if (parenthesized_expression "(((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26))" ( (binary_expression "((flags & 0x10000000) != 0) && (iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)" (parenthesized_expression "((flags & 0x10000000) != 0)" ( (binary_expression "(flags & 0x10000000) != 0" (parenthesized_expression "(flags & 0x10000000)" ( (binary_expression "flags & 0x10000000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26)" ( (comma_expression "iVar6 = bfd_get_arch(section->owner), iVar6 == 0x26" (assignment_expression "iVar6 = bfd_get_arch(section->owner)" identifier = (call_expression "bfd_get_arch(section->owner)" identifier (argument_list "(section->owner)" ( (field_expression "section->owner" identifier -> field_identifier) )))) , (binary_expression "iVar6 == 0x26" identifier == number_literal)) ))) )) (compound_statement "{\n        output->block_value = 0x80;\n      }" { (expression_statement "output->block_value = 0x80;" (assignment_expression "output->block_value = 0x80" (field_expression "output->block_value" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "pbVar1 = output->bfd_section;" (assignment_expression "pbVar1 = output->bfd_section" identifier = (field_expression "output->bfd_section" identifier -> field_identifier)) ;) (if_statement "if (pbVar1->alignment_power < section->alignment_power) {\n        pbVar1->alignment_power = section->alignment_power;\n      }" if (parenthesized_expression "(pbVar1->alignment_power < section->alignment_power)" ( (binary_expression "pbVar1->alignment_power < section->alignment_power" (field_expression "pbVar1->alignment_power" identifier -> field_identifier) < (field_expression "section->alignment_power" identifier -> field_identifier)) )) (compound_statement "{\n        pbVar1->alignment_power = section->alignment_power;\n      }" { (expression_statement "pbVar1->alignment_power = section->alignment_power;" (assignment_expression "pbVar1->alignment_power = section->alignment_power" (field_expression "pbVar1->alignment_power" identifier -> field_identifier) = (field_expression "section->alignment_power" identifier -> field_identifier)) ;) })) (expression_statement "bVar3 = map_head_is_link_order;" (assignment_expression "bVar3 = map_head_is_link_order" identifier = identifier) ;) (expression_statement "section->output_section = pbVar1;" (assignment_expression "section->output_section = pbVar1" (field_expression "section->output_section" identifier -> field_identifier) = identifier) ;) (if_statement "if (bVar3 == 0) {\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        pbVar2 = (pbVar1->map_tail).s;\n        (pbVar1->map_tail).link_order = (bfd_link_order *)section;\n        (section->map_head).link_order = (bfd_link_order *)0x0;\n        (section->map_tail).s = pbVar2;\n        if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }\n      }" { (expression_statement "pbVar2 = (pbVar1->map_tail).s;" (assignment_expression "pbVar2 = (pbVar1->map_tail).s" identifier = (field_expression "(pbVar1->map_tail).s" (parenthesized_expression "(pbVar1->map_tail)" ( (field_expression "pbVar1->map_tail" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(pbVar1->map_tail).link_order = (bfd_link_order *)section;" (assignment_expression "(pbVar1->map_tail).link_order = (bfd_link_order *)section" (field_expression "(pbVar1->map_tail).link_order" (parenthesized_expression "(pbVar1->map_tail)" ( (field_expression "pbVar1->map_tail" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(bfd_link_order *)section" ( (type_descriptor "bfd_link_order *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(section->map_head).link_order = (bfd_link_order *)0x0;" (assignment_expression "(section->map_head).link_order = (bfd_link_order *)0x0" (field_expression "(section->map_head).link_order" (parenthesized_expression "(section->map_head)" ( (field_expression "section->map_head" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(bfd_link_order *)0x0" ( (type_descriptor "bfd_link_order *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "(section->map_tail).s = pbVar2;" (assignment_expression "(section->map_tail).s = pbVar2" (field_expression "(section->map_tail).s" (parenthesized_expression "(section->map_tail)" ( (field_expression "section->map_tail" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (if_statement "if (pbVar2 == (bfd_section *)0x0) {\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }\n        else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }" if (parenthesized_expression "(pbVar2 == (bfd_section *)0x0)" ( (binary_expression "pbVar2 == (bfd_section *)0x0" identifier == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (pbVar1->map_head).link_order = (bfd_link_order *)section;\n        }" { (expression_statement "(pbVar1->map_head).link_order = (bfd_link_order *)section;" (assignment_expression "(pbVar1->map_head).link_order = (bfd_link_order *)section" (field_expression "(pbVar1->map_head).link_order" (parenthesized_expression "(pbVar1->map_head)" ( (field_expression "pbVar1->map_head" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(bfd_link_order *)section" ( (type_descriptor "bfd_link_order *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }" else (compound_statement "{\n          (pbVar2->map_head).link_order = (bfd_link_order *)section;\n        }" { (expression_statement "(pbVar2->map_head).link_order = (bfd_link_order *)section;" (assignment_expression "(pbVar2->map_head).link_order = (bfd_link_order *)section" (field_expression "(pbVar2->map_head).link_order" (parenthesized_expression "(pbVar2->map_head)" ( (field_expression "pbVar2->map_head" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(bfd_link_order *)section" ( (type_descriptor "bfd_link_order *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) })) (expression_statement "plVar5 = (lang_statement_union *)stat_alloc(0xc);" (assignment_expression "plVar5 = (lang_statement_union *)stat_alloc(0xc)" identifier = (cast_expression "(lang_statement_union *)stat_alloc(0xc)" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stat_alloc(0xc)" identifier (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "(plVar5->header).type = lang_input_section_enum;" (assignment_expression "(plVar5->header).type = lang_input_section_enum" (field_expression "(plVar5->header).type" (parenthesized_expression "(plVar5->header)" ( (field_expression "plVar5->header" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(plVar5->header).next = (lang_statement_union *)0x0;" (assignment_expression "(plVar5->header).next = (lang_statement_union *)0x0" (field_expression "(plVar5->header).next" (parenthesized_expression "(plVar5->header)" ( (field_expression "plVar5->header" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(lang_statement_union *)0x0" ( (type_descriptor "lang_statement_union *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*ptr->tail = plVar5;" (assignment_expression "*ptr->tail = plVar5" (pointer_expression "*ptr->tail" * (field_expression "ptr->tail" identifier -> field_identifier)) = identifier) ;) (expression_statement "ptr->tail = (lang_statement_union **)plVar5;" (assignment_expression "ptr->tail = (lang_statement_union **)plVar5" (field_expression "ptr->tail" identifier -> field_identifier) = (cast_expression "(lang_statement_union **)plVar5" ( (type_descriptor "lang_statement_union **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "(plVar5->input_section).section = section;" (assignment_expression "(plVar5->input_section).section = section" (field_expression "(plVar5->input_section).section" (parenthesized_expression "(plVar5->input_section)" ( (field_expression "plVar5->input_section" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (section->output_section == (bfd_section *)0x0) {\n    section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n    return;\n  }" else (if_statement "if (section->output_section == (bfd_section *)0x0) {\n    section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n    return;\n  }" if (parenthesized_expression "(section->output_section == (bfd_section *)0x0)" ( (binary_expression "section->output_section == (bfd_section *)0x0" (field_expression "section->output_section" identifier -> field_identifier) == (cast_expression "(bfd_section *)0x0" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);\n    return;\n  }" { (expression_statement "section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180);" (assignment_expression "section->output_section = (bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180)" (field_expression "section->output_section" identifier -> field_identifier) = (cast_expression "(bfd_section *)(PTR__bfd_std_section_001c1fd4 + 0x180)" ( (type_descriptor "bfd_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR__bfd_std_section_001c1fd4 + 0x180)" ( (binary_expression "PTR__bfd_std_section_001c1fd4 + 0x180" identifier + number_literal) )))) ;) (return_statement "return;" return ;) })))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000265f0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EBP;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  undefined1 uVar10;\n  byte bVar11;\n  \n  bVar11 = 0;\n  FUN_0001d3ba();\n  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;\n  uVar2 = *(uint *)(param_2 + 0x14);\n  iVar1 = FUN_00021350();\n  iVar4 = 10;\n  pbVar7 = *(byte **)(param_4 + 0x18);\n  pbVar8 = (byte *)(unaff_EBP + 0x58988);\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);\n  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_000265f0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EBP;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  undefined1 uVar10;\n  byte bVar11;\n  \n  bVar11 = 0;\n  FUN_0001d3ba();\n  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;\n  uVar2 = *(uint *)(param_2 + 0x14);\n  iVar1 = FUN_00021350();\n  iVar4 = 10;\n  pbVar7 = *(byte **)(param_4 + 0x18);\n  pbVar8 = (byte *)(unaff_EBP + 0x58988);\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);\n  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_000265f0(int param_1,int param_2,int param_3,int param_4)" identifier (parameter_list "(int param_1,int param_2,int param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EBP;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  undefined1 uVar10;\n  byte bVar11;\n  \n  bVar11 = 0;\n  FUN_0001d3ba();\n  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;\n  uVar2 = *(uint *)(param_2 + 0x14);\n  iVar1 = FUN_00021350();\n  iVar4 = 10;\n  pbVar7 = *(byte **)(param_4 + 0x18);\n  pbVar8 = (byte *)(unaff_EBP + 0x58988);\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);\n  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int unaff_EBP;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "undefined1 uVar9;" type_identifier identifier ;) (declaration "undefined1 uVar10;" type_identifier identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" identifier = number_literal) ;) (expression_statement "FUN_0001d3ba();" (call_expression "FUN_0001d3ba()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;" (assignment_expression "uVar9 = &stack0xfffffff0 < (undefined1 *)0xc" identifier = (binary_expression "&stack0xfffffff0 < (undefined1 *)0xc" (pointer_expression "&stack0xfffffff0" & identifier) < (cast_expression "(undefined1 *)0xc" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar10 = &stack0x00000000 == (undefined1 *)0x1c;" (assignment_expression "uVar10 = &stack0x00000000 == (undefined1 *)0x1c" identifier = (binary_expression "&stack0x00000000 == (undefined1 *)0x1c" (pointer_expression "&stack0x00000000" & identifier) == (cast_expression "(undefined1 *)0x1c" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "uVar2 = *(uint *)(param_2 + 0x14);" (assignment_expression "uVar2 = *(uint *)(param_2 + 0x14)" identifier = (pointer_expression "*(uint *)(param_2 + 0x14)" * (cast_expression "(uint *)(param_2 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar1 = FUN_00021350();" (assignment_expression "iVar1 = FUN_00021350()" identifier = (call_expression "FUN_00021350()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar4 = 10;" (assignment_expression "iVar4 = 10" identifier = number_literal) ;) (expression_statement "pbVar7 = *(byte **)(param_4 + 0x18);" (assignment_expression "pbVar7 = *(byte **)(param_4 + 0x18)" identifier = (pointer_expression "*(byte **)(param_4 + 0x18)" * (cast_expression "(byte **)(param_4 + 0x18)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "pbVar8 = (byte *)(unaff_EBP + 0x58988);" (assignment_expression "pbVar8 = (byte *)(unaff_EBP + 0x58988)" identifier = (cast_expression "(byte *)(unaff_EBP + 0x58988)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EBP + 0x58988)" ( (binary_expression "unaff_EBP + 0x58988" identifier + number_literal) )))) ;) (do_statement "do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);" do (compound_statement "{\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  }" { (if_statement "if (iVar4 == 0) break;" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) (expression_statement "uVar9 = *pbVar7 < *pbVar8;" (assignment_expression "uVar9 = *pbVar7 < *pbVar8" identifier = (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" * identifier) < (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "uVar10 = *pbVar7 == *pbVar8;" (assignment_expression "uVar10 = *pbVar7 == *pbVar8" identifier = (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" * identifier) == (pointer_expression "*pbVar8" * identifier))) ;) (expression_statement "pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pbVar7 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1" identifier = (binary_expression "pbVar8 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar11 * -2" identifier + (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "((bool)uVar10)" ( (cast_expression "(bool)uVar10" ( (type_descriptor "bool" primitive_type) ) identifier) )) ;) (if_statement "if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" if (parenthesized_expression "((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9))" ( (binary_expression "(iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) && (parenthesized_expression "((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)" ( (binary_expression "(!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9" (parenthesized_expression "(!(bool)uVar9 && !(bool)uVar10)" ( (binary_expression "!(bool)uVar9 && !(bool)uVar10" (unary_expression "!(bool)uVar9" ! (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) && (unary_expression "!(bool)uVar10" ! (cast_expression "(bool)uVar10" ( (type_descriptor "bool" primitive_type) ) identifier))) )) != (cast_expression "(bool)uVar9" ( (type_descriptor "bool" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }" { (if_statement "if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }" if (parenthesized_expression "(((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0))" ( (binary_expression "((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)" (parenthesized_expression "((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0))" ( (binary_expression "(param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)" (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)" ( (comma_expression "iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0" (assignment_expression "iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2)" identifier = (call_expression "(**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))" ( (pointer_expression "**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" * (pointer_expression "*(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" * (cast_expression "(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" ( (binary_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188" (pointer_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" * (cast_expression "(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" ( (binary_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4" (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" * (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" ( (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019e01c.initial_loc" & (field_expression "fde_table_entry_0019e01c.initial_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(unaff_EBP + 0x19dfea,param_3,param_2)" ( (binary_expression "unaff_EBP + 0x19dfea" identifier + number_literal) , identifier , identifier )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) && (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" ( (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }" { (expression_statement "pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);" (assignment_expression "pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" identifier = (cast_expression "(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" ( (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019dfe4.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019dfe4.data_loc" & (field_expression "fde_table_entry_0019dfe4.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) ;) (if_statement "if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" if (parenthesized_expression "((uVar2 & 0x2020000) == 0x2020000)" ( (binary_expression "(uVar2 & 0x2020000) == 0x2020000" (parenthesized_expression "(uVar2 & 0x2020000)" ( (binary_expression "uVar2 & 0x2020000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }" { (expression_statement "uVar6 = uVar2 & 0xfff3fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff3fdfb" identifier = (binary_expression "uVar2 & 0xfff3fdfb" identifier & number_literal)) ;) (if_statement "if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }" if (parenthesized_expression "((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0)" ( (binary_expression "(*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10)" ( (binary_expression "*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10" (pointer_expression "*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" * (cast_expression "(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" ( (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3" (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019dfe4.data_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019dfe4.data_loc" & (field_expression "fde_table_entry_0019dfe4.data_loc" identifier . field_identifier))) + identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }" { (expression_statement "uVar6 = uVar2 & 0xfff1fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff1fdfb" identifier = (binary_expression "uVar2 & 0xfff1fdfb" identifier & number_literal)) ;) })) }) (else_clause "else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" else (compound_statement "{\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" { (expression_statement "uVar6 = uVar2 & 0xfff1fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff1fdfb" identifier = (binary_expression "uVar2 & 0xfff1fdfb" identifier & number_literal)) ;) (if_statement "if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }" if (parenthesized_expression "((*pbVar7 & 3) == 2)" ( (binary_expression "(*pbVar7 & 3) == 2" (parenthesized_expression "(*pbVar7 & 3)" ( (binary_expression "*pbVar7 & 3" (pointer_expression "*pbVar7" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          uVar6 = uVar2 & 0xfffffdff;\n        }" { (expression_statement "uVar6 = uVar2 & 0xfffffdff;" (assignment_expression "uVar6 = uVar2 & 0xfffffdff" identifier = (binary_expression "uVar2 & 0xfffffdff" identifier & number_literal)) ;) })) }))) (if_statement "if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" if (parenthesized_expression "(*(int *)(param_4 + 0x50) == 2)" ( (binary_expression "*(int *)(param_4 + 0x50) == 2" (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }" { (if_statement "if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" if (parenthesized_expression "(*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5)" ( (binary_expression "*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" * (cast_expression "(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" ( (binary_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4" (pointer_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" * (cast_expression "(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" ( (binary_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4" (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" * (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" ( (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019e01c.initial_loc" & (field_expression "fde_table_entry_0019e01c.initial_loc" identifier . field_identifier))) + identifier) + number_literal) )))) + number_literal) )))) + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }" { (expression_statement "uVar6 = uVar6 & 0xfffffefd | 0x200;" (assignment_expression "uVar6 = uVar6 & 0xfffffefd | 0x200" identifier = (binary_expression "uVar6 & 0xfffffefd | 0x200" (binary_expression "uVar6 & 0xfffffefd" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" else (compound_statement "{\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" { (expression_statement "uVar6 = uVar6 & 0xfffffffc | 0x200;" (assignment_expression "uVar6 = uVar6 & 0xfffffffc | 0x200" identifier = (binary_expression "uVar6 & 0xfffffffc | 0x200" (binary_expression "uVar6 & 0xfffffffc" identifier & number_literal) | number_literal)) ;) }))) }) (else_clause "else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" else (if_statement "if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" if (parenthesized_expression "(*(int *)(param_4 + 0x50) == 3)" ( (binary_expression "*(int *)(param_4 + 0x50) == 3" (pointer_expression "*(int *)(param_4 + 0x50)" * (cast_expression "(int *)(param_4 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x50)" ( (binary_expression "param_4 + 0x50" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar6 = uVar6 & 0xfffffffe;\n      }" { (expression_statement "uVar6 = uVar6 & 0xfffffffe;" (assignment_expression "uVar6 = uVar6 & 0xfffffffe" identifier = (binary_expression "uVar6 & 0xfffffffe" identifier & number_literal)) ;) })))) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" identifier = (pointer_expression "*(int *)(param_4 + 0x1c)" * (cast_expression "(int *)(param_4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }" { (expression_statement "FUN_00025a80();" (call_expression "FUN_00025a80()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" identifier = (pointer_expression "*(int *)(param_4 + 0x1c)" * (cast_expression "(int *)(param_4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) ))))) ;) })) (expression_statement "uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);" (assignment_expression "uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14)" identifier = (binary_expression "(uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14)" (parenthesized_expression "(uVar6 | 0xfffffff7)" ( (binary_expression "uVar6 | 0xfffffff7" identifier | number_literal) )) & (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))))) ;) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" if (parenthesized_expression "((*(byte *)(iVar1 + 0x18) & 4) == 0)" ( (binary_expression "(*(byte *)(iVar1 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar1 + 0x18) & 4)" ( (binary_expression "*(byte *)(iVar1 + 0x18) & 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" * (cast_expression "(byte *)(iVar1 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }" { (expression_statement "*(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;" (assignment_expression "*(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" * (cast_expression "(byte *)(iVar1 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) = (binary_expression "*(byte *)(iVar1 + 0x18) | 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" * (cast_expression "(byte *)(iVar1 + 0x18)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x18)" ( (binary_expression "iVar1 + 0x18" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2 | uVar6;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2 | uVar6" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar2 | uVar6" identifier | identifier)) ;) (expression_statement "iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);" (assignment_expression "iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" identifier = (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" * (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" ( (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&fde_table_entry_0019e01c.initial_loc" & (field_expression "fde_table_entry_0019e01c.initial_loc" identifier . field_identifier))) + identifier) + number_literal) ))))) ;) (expression_statement "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);" (call_expression "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7)" (parenthesized_expression "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))" ( (pointer_expression "**(code **)(*(int *)(iVar4 + 4) + 0xb0)" * (pointer_expression "*(code **)(*(int *)(iVar4 + 4) + 0xb0)" * (cast_expression "(code **)(*(int *)(iVar4 + 4) + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(iVar4 + 4) + 0xb0)" ( (binary_expression "*(int *)(iVar4 + 4) + 0xb0" (pointer_expression "*(int *)(iVar4 + 4)" * (cast_expression "(int *)(iVar4 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 4)" ( (binary_expression "iVar4 + 4" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7)" ( (pointer_expression "*(undefined4 *)(param_2 + 0xac)" * (cast_expression "(undefined4 *)(param_2 + 0xac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) , identifier , identifier , identifier , identifier ))) ;) (if_statement "if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }" if (parenthesized_expression "((uVar6 & 0x800000) != 0)" ( (binary_expression "(uVar6 & 0x800000) != 0" (parenthesized_expression "(uVar6 & 0x800000)" ( (binary_expression "uVar6 & 0x800000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }" { (expression_statement "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);" (assignment_expression "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90)" (pointer_expression "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90)" * (cast_expression "(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_4 + 0x1c) + 0x90)" ( (binary_expression "*(int *)(param_4 + 0x1c) + 0x90" (pointer_expression "*(int *)(param_4 + 0x1c)" * (cast_expression "(int *)(param_4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) )))) + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_2 + 0x90)" * (cast_expression "(undefined4 *)(param_2 + 0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x90)" ( (binary_expression "param_2 + 0x90" identifier + number_literal) ))))) ;) })) }) (else_clause "else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" else (compound_statement "{\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" { (expression_statement "uVar5 = uVar6 & 0xfffffff7;" (assignment_expression "uVar5 = uVar6 & 0xfffffff7" identifier = (binary_expression "uVar6 & 0xfffffff7" identifier & number_literal)) ;) (if_statement "if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }" if (parenthesized_expression "((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)))))" ( (binary_expression "(((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))" (parenthesized_expression "(((uVar2 ^ uVar5) & 0x1800000) != 0)" ( (binary_expression "((uVar2 ^ uVar5) & 0x1800000) != 0" (parenthesized_expression "((uVar2 ^ uVar5) & 0x1800000)" ( (binary_expression "(uVar2 ^ uVar5) & 0x1800000" (parenthesized_expression "(uVar2 ^ uVar5)" ( (binary_expression "uVar2 ^ uVar5" identifier ^ identifier) )) & number_literal) )) != number_literal) )) || (parenthesized_expression "(((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))" ( (parenthesized_expression "((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)))" ( (binary_expression "(uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))" (binary_expression "(uVar6 & 0x800000) != 0" (parenthesized_expression "(uVar6 & 0x800000)" ( (binary_expression "uVar6 & 0x800000" identifier & number_literal) )) != number_literal) && (parenthesized_expression "(*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))" ( (binary_expression "*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)" (pointer_expression "*(int *)(iVar1 + 0x90)" * (cast_expression "(int *)(iVar1 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x90)" ( (binary_expression "iVar1 + 0x90" identifier + number_literal) )))) != (pointer_expression "*(int *)(param_2 + 0x90)" * (cast_expression "(int *)(param_2 + 0x90)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x90)" ( (binary_expression "param_2 + 0x90" identifier + number_literal) ))))) ))) )) ))) )) (compound_statement "{\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }" { (expression_statement "uVar2 = uVar2 & 0xfe7fffff;" (assignment_expression "uVar2 = uVar2 & 0xfe7fffff" identifier = (binary_expression "uVar2 & 0xfe7fffff" identifier & number_literal)) ;) (expression_statement "uVar5 = uVar6 & 0xfe7ffff7;" (assignment_expression "uVar5 = uVar6 & 0xfe7ffff7" identifier = (binary_expression "uVar6 & 0xfe7ffff7" identifier & number_literal)) ;) })) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2 | uVar5;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2 | uVar5" (pointer_expression "*(uint *)(iVar1 + 0x14)" * (cast_expression "(uint *)(iVar1 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) )))) = (binary_expression "uVar2 | uVar5" identifier | identifier)) ;) (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" identifier = identifier) ;) }))) (if_statement "if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }" if (parenthesized_expression "(((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26))" ( (binary_expression "((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)" (parenthesized_expression "((uVar6 & 0x10000000) != 0)" ( (binary_expression "(uVar6 & 0x10000000) != 0" (parenthesized_expression "(uVar6 & 0x10000000)" ( (binary_expression "uVar6 & 0x10000000" identifier & number_literal) )) != number_literal) )) && (parenthesized_expression "(iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)" ( (comma_expression "iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26" (assignment_expression "iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac))" identifier = (call_expression "bfd_get_arch(*(undefined4 *)(param_2 + 0xac))" identifier (argument_list "(*(undefined4 *)(param_2 + 0xac))" ( (pointer_expression "*(undefined4 *)(param_2 + 0xac)" * (cast_expression "(undefined4 *)(param_2 + 0xac)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) )))) , (binary_expression "iVar1 == 0x26" identifier == number_literal)) ))) )) (compound_statement "{\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }" { (expression_statement "*(undefined4 *)(param_4 + 0x3c) = 0x80;" (assignment_expression "*(undefined4 *)(param_4 + 0x3c) = 0x80" (pointer_expression "*(undefined4 *)(param_4 + 0x3c)" * (cast_expression "(undefined4 *)(param_4 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x3c)" ( (binary_expression "param_4 + 0x3c" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" identifier = (pointer_expression "*(int *)(param_4 + 0x1c)" * (cast_expression "(int *)(param_4 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x1c)" ( (binary_expression "param_4 + 0x1c" identifier + number_literal) ))))) ;) (if_statement "if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }" if (parenthesized_expression "(*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58))" ( (binary_expression "*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)" (pointer_expression "*(uint *)(iVar1 + 0x58)" * (cast_expression "(uint *)(iVar1 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) )))) < (pointer_expression "*(uint *)(param_2 + 0x58)" * (cast_expression "(uint *)(param_2 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) )) (compound_statement "{\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }" { (expression_statement "*(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);" (assignment_expression "*(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58)" (pointer_expression "*(uint *)(iVar1 + 0x58)" * (cast_expression "(uint *)(iVar1 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x58)" ( (binary_expression "iVar1 + 0x58" identifier + number_literal) )))) = (pointer_expression "*(uint *)(param_2 + 0x58)" * (cast_expression "(uint *)(param_2 + 0x58)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x58)" ( (binary_expression "param_2 + 0x58" identifier + number_literal) ))))) ;) })) (expression_statement "iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);" (assignment_expression "iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6)" identifier = (pointer_expression "*(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6)" * (cast_expression "(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6)" ( (binary_expression ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6" (binary_expression ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP" (string_literal ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..."" " escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") + identifier) + number_literal) ))))) ;) (expression_statement "*(int *)(param_2 + 0x54) = iVar1;" (assignment_expression "*(int *)(param_2 + 0x54) = iVar1" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }" { (expression_statement "iVar4 = *(int *)(iVar1 + 0xbc);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0xbc)" identifier = (pointer_expression "*(int *)(iVar1 + 0xbc)" * (cast_expression "(int *)(iVar1 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xbc)" ( (binary_expression "iVar1 + 0xbc" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar1 + 0xbc) = param_2;" (assignment_expression "*(int *)(iVar1 + 0xbc) = param_2" (pointer_expression "*(int *)(iVar1 + 0xbc)" * (cast_expression "(int *)(iVar1 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xbc)" ( (binary_expression "iVar1 + 0xbc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(param_2 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xb8)" * (cast_expression "(undefined4 *)(param_2 + 0xb8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xb8)" ( (binary_expression "param_2 + 0xb8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(param_2 + 0xbc) = iVar4;" (assignment_expression "*(int *)(param_2 + 0xbc) = iVar4" (pointer_expression "*(int *)(param_2 + 0xbc)" * (cast_expression "(int *)(param_2 + 0xbc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xbc)" ( (binary_expression "param_2 + 0xbc" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" if (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) (compound_statement "{\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }" { (expression_statement "*(int *)(iVar1 + 0xb8) = param_2;" (assignment_expression "*(int *)(iVar1 + 0xb8) = param_2" (pointer_expression "*(int *)(iVar1 + 0xb8)" * (cast_expression "(int *)(iVar1 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xb8)" ( (binary_expression "iVar1 + 0xb8" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" else (compound_statement "{\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" { (expression_statement "*(int *)(iVar4 + 0xb8) = param_2;" (assignment_expression "*(int *)(iVar4 + 0xb8) = param_2" (pointer_expression "*(int *)(iVar4 + 0xb8)" * (cast_expression "(int *)(iVar4 + 0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xb8)" ( (binary_expression "iVar4 + 0xb8" identifier + number_literal) )))) = identifier) ;) }))) })) (expression_statement "puVar3 = (undefined4 *)FUN_00023860(0xc);" (assignment_expression "puVar3 = (undefined4 *)FUN_00023860(0xc)" identifier = (cast_expression "(undefined4 *)FUN_00023860(0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00023860(0xc)" identifier (argument_list "(0xc)" ( number_literal ))))) ;) (expression_statement "puVar3[1] = 5;" (assignment_expression "puVar3[1] = 5" (subscript_expression "puVar3[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" * identifier) = number_literal) ;) (expression_statement "**(undefined4 **)(param_1 + 4) = puVar3;" (assignment_expression "**(undefined4 **)(param_1 + 4) = puVar3" (pointer_expression "**(undefined4 **)(param_1 + 4)" * (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) ))))) = identifier) ;) (expression_statement "*(undefined4 **)(param_1 + 4) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 4) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 4)" * (cast_expression "(undefined4 **)(param_1 + 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar3[2] = param_2;" (assignment_expression "puVar3[2] = param_2" (subscript_expression "puVar3[2]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) }) (else_clause "else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" else (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" ( (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" { (expression_statement "*(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;" (assignment_expression "*(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180" (pointer_expression "*(int *)(param_2 + 0x54)" * (cast_expression "(int *)(param_2 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x54)" ( (binary_expression "param_2 + 0x54" identifier + number_literal) )))) = (binary_expression "*(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180" (pointer_expression "*(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686)" * (cast_expression "(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686)" ( (binary_expression ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686" (binary_expression ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP" (string_literal ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..."" " escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") + identifier) + number_literal) )))) + number_literal)) ;) (return_statement "return;" return ;) })))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression & IDENT) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE) ) IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT)) && (unary_expression ! (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) != (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT . field_identifier))) + IDENT) + LIT) )))) + LIT) )))) + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT . field_identifier))) + IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT . field_identifier))) + IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT . field_identifier))) + IDENT) + LIT) )))) + LIT) )))) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT | LIT) )) & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (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) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) | LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & (field_expression IDENT . field_identifier))) + IDENT) + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ IDENT) )) & LIT) )) != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT | IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (string_literal " escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") + IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (string_literal " escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") + IDENT) + LIT) )))) + LIT)) ;) (return_statement return ;) })))) (return_statement return ;) })))
(function_definition "void FUN_000265f0(int param_1,int param_2,int param_3,int param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EBP;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  undefined1 uVar10;\n  byte bVar11;\n  \n  bVar11 = 0;\n  FUN_0001d3ba();\n  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;\n  uVar2 = *(uint *)(param_2 + 0x14);\n  iVar1 = FUN_00021350();\n  iVar4 = 10;\n  pbVar7 = *(byte **)(param_4 + 0x18);\n  pbVar8 = (byte *)(unaff_EBP + 0x58988);\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);\n  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000265f0(int param_1,int param_2,int param_3,int param_4)" (identifier "FUN_000265f0") (parameter_list "(int param_1,int param_2,int param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  int iVar4;\n  uint uVar5;\n  uint uVar6;\n  int unaff_EBP;\n  byte *pbVar7;\n  byte *pbVar8;\n  undefined1 uVar9;\n  undefined1 uVar10;\n  byte bVar11;\n  \n  bVar11 = 0;\n  FUN_0001d3ba();\n  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;\n  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;\n  uVar2 = *(uint *)(param_2 + 0x14);\n  iVar1 = FUN_00021350();\n  iVar4 = 10;\n  pbVar7 = *(byte **)(param_4 + 0x18);\n  pbVar8 = (byte *)(unaff_EBP + 0x58988);\n  do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);\n  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int unaff_EBP;" (primitive_type "int") (identifier "unaff_EBP") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "undefined1 uVar9;" (type_identifier "undefined1") (identifier "uVar9") (; ";")) (declaration "undefined1 uVar10;" (type_identifier "undefined1") (identifier "uVar10") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (expression_statement "bVar11 = 0;" (assignment_expression "bVar11 = 0" (identifier "bVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0001d3ba();" (call_expression "FUN_0001d3ba()" (identifier "FUN_0001d3ba") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;" (assignment_expression "uVar9 = &stack0xfffffff0 < (undefined1 *)0xc" (identifier "uVar9") (= "=") (binary_expression "&stack0xfffffff0 < (undefined1 *)0xc" (pointer_expression "&stack0xfffffff0" (& "&") (identifier "stack0xfffffff0")) (< "<") (cast_expression "(undefined1 *)0xc" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xc")))) (; ";")) (expression_statement "uVar10 = &stack0x00000000 == (undefined1 *)0x1c;" (assignment_expression "uVar10 = &stack0x00000000 == (undefined1 *)0x1c" (identifier "uVar10") (= "=") (binary_expression "&stack0x00000000 == (undefined1 *)0x1c" (pointer_expression "&stack0x00000000" (& "&") (identifier "stack0x00000000")) (== "==") (cast_expression "(undefined1 *)0x1c" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1c")))) (; ";")) (expression_statement "uVar2 = *(uint *)(param_2 + 0x14);" (assignment_expression "uVar2 = *(uint *)(param_2 + 0x14)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_2 + 0x14)" (* "*") (cast_expression "(uint *)(param_2 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar1 = FUN_00021350();" (assignment_expression "iVar1 = FUN_00021350()" (identifier "iVar1") (= "=") (call_expression "FUN_00021350()" (identifier "FUN_00021350") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar4 = 10;" (assignment_expression "iVar4 = 10" (identifier "iVar4") (= "=") (number_literal "10")) (; ";")) (expression_statement "pbVar7 = *(byte **)(param_4 + 0x18);" (assignment_expression "pbVar7 = *(byte **)(param_4 + 0x18)" (identifier "pbVar7") (= "=") (pointer_expression "*(byte **)(param_4 + 0x18)" (* "*") (cast_expression "(byte **)(param_4 + 0x18)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "pbVar8 = (byte *)(unaff_EBP + 0x58988);" (assignment_expression "pbVar8 = (byte *)(unaff_EBP + 0x58988)" (identifier "pbVar8") (= "=") (cast_expression "(byte *)(unaff_EBP + 0x58988)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EBP + 0x58988)" (( "(") (binary_expression "unaff_EBP + 0x58988" (identifier "unaff_EBP") (+ "+") (number_literal "0x58988")) () ")")))) (; ";")) (do_statement "do {\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  } while ((bool)uVar10);" (do "do") (compound_statement "{\n    if (iVar4 == 0) break;\n    iVar4 = iVar4 + -1;\n    uVar9 = *pbVar7 < *pbVar8;\n    uVar10 = *pbVar7 == *pbVar8;\n    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;\n    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;\n  }" ({ "{") (if_statement "if (iVar4 == 0) break;" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar9 = *pbVar7 < *pbVar8;" (assignment_expression "uVar9 = *pbVar7 < *pbVar8" (identifier "uVar9") (= "=") (binary_expression "*pbVar7 < *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (< "<") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "uVar10 = *pbVar7 == *pbVar8;" (assignment_expression "uVar10 = *pbVar7 == *pbVar8" (identifier "uVar10") (= "=") (binary_expression "*pbVar7 == *pbVar8" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar7 + (uint)bVar11 * -2" (identifier "pbVar7") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;" (assignment_expression "pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1" (identifier "pbVar8") (= "=") (binary_expression "pbVar8 + (uint)bVar11 * -2 + 1" (binary_expression "pbVar8 + (uint)bVar11 * -2" (identifier "pbVar8") (+ "+") (binary_expression "(uint)bVar11 * -2" (cast_expression "(uint)bVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar11")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((bool)uVar10)" (( "(") (cast_expression "(bool)uVar10" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar10")) () ")")) (; ";")) (if_statement "if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }\n  else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" (if "if") (parenthesized_expression "((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9))" (( "(") (binary_expression "(iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)" (( "(") (binary_expression "(!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9" (parenthesized_expression "(!(bool)uVar9 && !(bool)uVar10)" (( "(") (binary_expression "!(bool)uVar9 && !(bool)uVar10" (unary_expression "!(bool)uVar9" (! "!") (cast_expression "(bool)uVar9" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar9"))) (&& "&&") (unary_expression "!(bool)uVar10" (! "!") (cast_expression "(bool)uVar10" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar10")))) () ")")) (!= "!=") (cast_expression "(bool)uVar9" (( "(") (type_descriptor "bool" (primitive_type "bool")) () ")") (identifier "uVar9"))) () ")"))) () ")")) (compound_statement "{\n    if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }\n  }" ({ "{") (if_statement "if (((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)) {\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }" (if "if") (parenthesized_expression "(((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0))" (( "(") (binary_expression "((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&\n       (*(int *)(param_2 + 0x54) == 0)" (parenthesized_expression "((param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0))" (( "(") (binary_expression "(param_3 == 0) ||\n        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)" (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)" (( "(") (comma_expression "iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0" (assignment_expression "iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))\n                           (unaff_EBP + 0x19dfea,param_3,param_2)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188))" (( "(") (pointer_expression "**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" (* "*") (pointer_expression "*(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" (* "*") (cast_expression "(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188)" (( "(") (binary_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4) + 0x188" (pointer_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" (* "*") (cast_expression "(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4)" (( "(") (binary_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2) + 4" (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" (* "*") (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2)" (( "(") (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc +\n                                               unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&fde_table_entry_0019e01c.initial_loc" (& "&") (field_expression "fde_table_entry_0019e01c.initial_loc" (identifier "fde_table_entry_0019e01c") (. ".") (field_identifier "initial_loc")))) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "2")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x188")) () ")"))))) () ")")) (argument_list "(unaff_EBP + 0x19dfea,param_3,param_2)" (( "(") (binary_expression "unaff_EBP + 0x19dfea" (identifier "unaff_EBP") (+ "+") (number_literal "0x19dfea")) (, ",") (identifier "param_3") (, ",") (identifier "param_2") () ")")))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);\n      if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }\n      if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }\n      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);\n      *(uint *)(iVar1 + 0x14) = uVar2;\n      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }\n      if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }\n      iVar1 = *(int *)(param_4 + 0x1c);\n      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }\n      iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);\n      *(int *)(param_2 + 0x54) = iVar1;\n      if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }\n      puVar3 = (undefined4 *)FUN_00023860(0xc);\n      puVar3[1] = 5;\n      *puVar3 = 0;\n      **(undefined4 **)(param_1 + 4) = puVar3;\n      *(undefined4 **)(param_1 + 4) = puVar3;\n      puVar3[2] = param_2;\n      return;\n    }" ({ "{") (expression_statement "pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);" (assignment_expression "pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2)" (( "(") (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019dfe4.data_loc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&fde_table_entry_0019dfe4.data_loc" (& "&") (field_expression "fde_table_entry_0019dfe4.data_loc" (identifier "fde_table_entry_0019dfe4") (. ".") (field_identifier "data_loc")))) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if ((uVar2 & 0x2020000) == 0x2020000) {\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }\n      else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" (if "if") (parenthesized_expression "((uVar2 & 0x2020000) == 0x2020000)" (( "(") (binary_expression "(uVar2 & 0x2020000) == 0x2020000" (parenthesized_expression "(uVar2 & 0x2020000)" (( "(") (binary_expression "uVar2 & 0x2020000" (identifier "uVar2") (& "&") (number_literal "0x2020000")) () ")")) (== "==") (number_literal "0x2020000")) () ")")) (compound_statement "{\n        uVar6 = uVar2 & 0xfff3fdfb;\n        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }\n      }" ({ "{") (expression_statement "uVar6 = uVar2 & 0xfff3fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff3fdfb" (identifier "uVar6") (= "=") (binary_expression "uVar2 & 0xfff3fdfb" (identifier "uVar2") (& "&") (number_literal "0xfff3fdfb"))) (; ";")) (if_statement "if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0" (parenthesized_expression "(*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10)" (( "(") (binary_expression "*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10" (pointer_expression "*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" (* "*") (cast_expression "(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3)" (( "(") (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3" (binary_expression "(int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019dfe4.data_loc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&fde_table_entry_0019dfe4.data_loc" (& "&") (field_expression "fde_table_entry_0019dfe4.data_loc" (identifier "fde_table_entry_0019dfe4") (. ".") (field_identifier "data_loc")))) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "3")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar6 = uVar2 & 0xfff1fdfb;\n        }" ({ "{") (expression_statement "uVar6 = uVar2 & 0xfff1fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff1fdfb" (identifier "uVar6") (= "=") (binary_expression "uVar2 & 0xfff1fdfb" (identifier "uVar2") (& "&") (number_literal "0xfff1fdfb"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" (else "else") (compound_statement "{\n        uVar6 = uVar2 & 0xfff1fdfb;\n        if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }\n      }" ({ "{") (expression_statement "uVar6 = uVar2 & 0xfff1fdfb;" (assignment_expression "uVar6 = uVar2 & 0xfff1fdfb" (identifier "uVar6") (= "=") (binary_expression "uVar2 & 0xfff1fdfb" (identifier "uVar2") (& "&") (number_literal "0xfff1fdfb"))) (; ";")) (if_statement "if ((*pbVar7 & 3) == 2) {\n          uVar6 = uVar2 & 0xfffffdff;\n        }" (if "if") (parenthesized_expression "((*pbVar7 & 3) == 2)" (( "(") (binary_expression "(*pbVar7 & 3) == 2" (parenthesized_expression "(*pbVar7 & 3)" (( "(") (binary_expression "*pbVar7 & 3" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          uVar6 = uVar2 & 0xfffffdff;\n        }" ({ "{") (expression_statement "uVar6 = uVar2 & 0xfffffdff;" (assignment_expression "uVar6 = uVar2 & 0xfffffdff" (identifier "uVar6") (= "=") (binary_expression "uVar2 & 0xfffffdff" (identifier "uVar2") (& "&") (number_literal "0xfffffdff"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(int *)(param_4 + 0x50) == 2) {\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }\n      else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_4 + 0x50) == 2)" (( "(") (binary_expression "*(int *)(param_4 + 0x50) == 2" (pointer_expression "*(int *)(param_4 + 0x50)" (* "*") (cast_expression "(int *)(param_4 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x50)" (( "(") (binary_expression "param_4 + 0x50" (identifier "param_4") (+ "+") (number_literal "0x50")) () ")")))) (== "==") (number_literal "2")) () ")")) (compound_statement "{\n        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }\n      }" ({ "{") (if_statement "if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5) {\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }\n        else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" (if "if") (parenthesized_expression "(*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5)" (( "(") (binary_expression "*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4) == 5" (pointer_expression "*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" (* "*") (cast_expression "(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4)" (( "(") (binary_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4) + 4" (pointer_expression "*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" (* "*") (cast_expression "(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4)" (( "(") (binary_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +\n                             4" (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" (* "*") (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" (( "(") (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&fde_table_entry_0019e01c.initial_loc" (& "&") (field_expression "fde_table_entry_0019e01c.initial_loc" (identifier "fde_table_entry_0019e01c") (. ".") (field_identifier "initial_loc")))) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "2")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (== "==") (number_literal "5")) () ")")) (compound_statement "{\n          uVar6 = uVar6 & 0xfffffefd | 0x200;\n        }" ({ "{") (expression_statement "uVar6 = uVar6 & 0xfffffefd | 0x200;" (assignment_expression "uVar6 = uVar6 & 0xfffffefd | 0x200" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 0xfffffefd | 0x200" (binary_expression "uVar6 & 0xfffffefd" (identifier "uVar6") (& "&") (number_literal "0xfffffefd")) (| "|") (number_literal "0x200"))) (; ";")) (} "}")) (else_clause "else {\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" (else "else") (compound_statement "{\n          uVar6 = uVar6 & 0xfffffffc | 0x200;\n        }" ({ "{") (expression_statement "uVar6 = uVar6 & 0xfffffffc | 0x200;" (assignment_expression "uVar6 = uVar6 & 0xfffffffc | 0x200" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 0xfffffffc | 0x200" (binary_expression "uVar6 & 0xfffffffc" (identifier "uVar6") (& "&") (number_literal "0xfffffffc")) (| "|") (number_literal "0x200"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" (else "else") (if_statement "if (*(int *)(param_4 + 0x50) == 3) {\n        uVar6 = uVar6 & 0xfffffffe;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_4 + 0x50) == 3)" (( "(") (binary_expression "*(int *)(param_4 + 0x50) == 3" (pointer_expression "*(int *)(param_4 + 0x50)" (* "*") (cast_expression "(int *)(param_4 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x50)" (( "(") (binary_expression "param_4 + 0x50" (identifier "param_4") (+ "+") (number_literal "0x50")) () ")")))) (== "==") (number_literal "3")) () ")")) (compound_statement "{\n        uVar6 = uVar6 & 0xfffffffe;\n      }" ({ "{") (expression_statement "uVar6 = uVar6 & 0xfffffffe;" (assignment_expression "uVar6 = uVar6 & 0xfffffffe" (identifier "uVar6") (= "=") (binary_expression "uVar6 & 0xfffffffe" (identifier "uVar6") (& "&") (number_literal "0xfffffffe"))) (; ";")) (} "}"))))) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_4 + 0x1c)" (* "*") (cast_expression "(int *)(param_4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x1c)" (( "(") (binary_expression "param_4 + 0x1c" (identifier "param_4") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (iVar1 == 0) {\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00025a80();\n        iVar1 = *(int *)(param_4 + 0x1c);\n      }" ({ "{") (expression_statement "FUN_00025a80();" (call_expression "FUN_00025a80()" (identifier "FUN_00025a80") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_4 + 0x1c)" (* "*") (cast_expression "(int *)(param_4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x1c)" (( "(") (binary_expression "param_4 + 0x1c" (identifier "param_4") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);" (assignment_expression "uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14)" (identifier "uVar2") (= "=") (binary_expression "(uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14)" (parenthesized_expression "(uVar6 | 0xfffffff7)" (( "(") (binary_expression "uVar6 | 0xfffffff7" (identifier "uVar6") (| "|") (number_literal "0xfffffff7")) () ")")) (& "&") (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))))) (; ";")) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2" (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (if_statement "if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }\n      else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" (if "if") (parenthesized_expression "((*(byte *)(iVar1 + 0x18) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(iVar1 + 0x18) & 4) == 0" (parenthesized_expression "(*(byte *)(iVar1 + 0x18) & 4)" (( "(") (binary_expression "*(byte *)(iVar1 + 0x18) & 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" (* "*") (cast_expression "(byte *)(iVar1 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;\n        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);\n        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);\n        if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }\n      }" ({ "{") (expression_statement "*(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;" (assignment_expression "*(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" (* "*") (cast_expression "(byte *)(iVar1 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(byte *)(iVar1 + 0x18) | 4" (pointer_expression "*(byte *)(iVar1 + 0x18)" (* "*") (cast_expression "(byte *)(iVar1 + 0x18)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x18)" (( "(") (binary_expression "iVar1 + 0x18" (identifier "iVar1") (+ "+") (number_literal "0x18")) () ")")))) (| "|") (number_literal "4"))) (; ";")) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2 | uVar6;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2 | uVar6" (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "uVar2 | uVar6" (identifier "uVar2") (| "|") (identifier "uVar6"))) (; ";")) (expression_statement "iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);" (assignment_expression "iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" (* "*") (cast_expression "(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2)" (( "(") (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2" (binary_expression "(int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP" (cast_expression "(int)&fde_table_entry_0019e01c.initial_loc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&fde_table_entry_0019e01c.initial_loc" (& "&") (field_expression "fde_table_entry_0019e01c.initial_loc" (identifier "fde_table_entry_0019e01c") (. ".") (field_identifier "initial_loc")))) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);" (call_expression "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))\n                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7)" (parenthesized_expression "(**(code **)(*(int *)(iVar4 + 4) + 0xb0))" (( "(") (pointer_expression "**(code **)(*(int *)(iVar4 + 4) + 0xb0)" (* "*") (pointer_expression "*(code **)(*(int *)(iVar4 + 4) + 0xb0)" (* "*") (cast_expression "(code **)(*(int *)(iVar4 + 4) + 0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 4) + 0xb0)" (( "(") (binary_expression "*(int *)(iVar4 + 4) + 0xb0" (pointer_expression "*(int *)(iVar4 + 4)" (* "*") (cast_expression "(int *)(iVar4 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 4)" (( "(") (binary_expression "iVar4 + 4" (identifier "iVar4") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7)" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 0xac)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0xac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xac)" (( "(") (binary_expression "param_2 + 0xac" (identifier "param_2") (+ "+") (number_literal "0xac")) () ")")))) (, ",") (identifier "param_2") (, ",") (identifier "iVar4") (, ",") (identifier "iVar1") (, ",") (identifier "pbVar7") () ")"))) (; ";")) (if_statement "if ((uVar6 & 0x800000) != 0) {\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }" (if "if") (parenthesized_expression "((uVar6 & 0x800000) != 0)" (( "(") (binary_expression "(uVar6 & 0x800000) != 0" (parenthesized_expression "(uVar6 & 0x800000)" (( "(") (binary_expression "uVar6 & 0x800000" (identifier "uVar6") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);\n        }" ({ "{") (expression_statement "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);" (assignment_expression "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90)" (pointer_expression "*(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_4 + 0x1c) + 0x90)" (( "(") (binary_expression "*(int *)(param_4 + 0x1c) + 0x90" (pointer_expression "*(int *)(param_4 + 0x1c)" (* "*") (cast_expression "(int *)(param_4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x1c)" (( "(") (binary_expression "param_4 + 0x1c" (identifier "param_4") (+ "+") (number_literal "0x1c")) () ")")))) (+ "+") (number_literal "0x90")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_2 + 0x90)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x90)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x90)" (( "(") (binary_expression "param_2 + 0x90" (identifier "param_2") (+ "+") (number_literal "0x90")) () ")"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" (else "else") (compound_statement "{\n        uVar5 = uVar6 & 0xfffffff7;\n        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }\n        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;\n        uVar6 = uVar5;\n      }" ({ "{") (expression_statement "uVar5 = uVar6 & 0xfffffff7;" (assignment_expression "uVar5 = uVar6 & 0xfffffff7" (identifier "uVar5") (= "=") (binary_expression "uVar6 & 0xfffffff7" (identifier "uVar6") (& "&") (number_literal "0xfffffff7"))) (; ";")) (if_statement "if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }" (if "if") (parenthesized_expression "((((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)))))" (( "(") (binary_expression "(((uVar2 ^ uVar5) & 0x1800000) != 0) ||\n           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))" (parenthesized_expression "(((uVar2 ^ uVar5) & 0x1800000) != 0)" (( "(") (binary_expression "((uVar2 ^ uVar5) & 0x1800000) != 0" (parenthesized_expression "((uVar2 ^ uVar5) & 0x1800000)" (( "(") (binary_expression "(uVar2 ^ uVar5) & 0x1800000" (parenthesized_expression "(uVar2 ^ uVar5)" (( "(") (binary_expression "uVar2 ^ uVar5" (identifier "uVar2") (^ "^") (identifier "uVar5")) () ")")) (& "&") (number_literal "0x1800000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))" (( "(") (parenthesized_expression "((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)))" (( "(") (binary_expression "(uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))" (binary_expression "(uVar6 & 0x800000) != 0" (parenthesized_expression "(uVar6 & 0x800000)" (( "(") (binary_expression "uVar6 & 0x800000" (identifier "uVar6") (& "&") (number_literal "0x800000")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))" (( "(") (binary_expression "*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90)" (pointer_expression "*(int *)(iVar1 + 0x90)" (* "*") (cast_expression "(int *)(iVar1 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x90)" (( "(") (binary_expression "iVar1 + 0x90" (identifier "iVar1") (+ "+") (number_literal "0x90")) () ")")))) (!= "!=") (pointer_expression "*(int *)(param_2 + 0x90)" (* "*") (cast_expression "(int *)(param_2 + 0x90)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x90)" (( "(") (binary_expression "param_2 + 0x90" (identifier "param_2") (+ "+") (number_literal "0x90")) () ")"))))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          uVar2 = uVar2 & 0xfe7fffff;\n          uVar5 = uVar6 & 0xfe7ffff7;\n        }" ({ "{") (expression_statement "uVar2 = uVar2 & 0xfe7fffff;" (assignment_expression "uVar2 = uVar2 & 0xfe7fffff" (identifier "uVar2") (= "=") (binary_expression "uVar2 & 0xfe7fffff" (identifier "uVar2") (& "&") (number_literal "0xfe7fffff"))) (; ";")) (expression_statement "uVar5 = uVar6 & 0xfe7ffff7;" (assignment_expression "uVar5 = uVar6 & 0xfe7ffff7" (identifier "uVar5") (= "=") (binary_expression "uVar6 & 0xfe7ffff7" (identifier "uVar6") (& "&") (number_literal "0xfe7ffff7"))) (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar1 + 0x14) = uVar2 | uVar5;" (assignment_expression "*(uint *)(iVar1 + 0x14) = uVar2 | uVar5" (pointer_expression "*(uint *)(iVar1 + 0x14)" (* "*") (cast_expression "(uint *)(iVar1 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "uVar2 | uVar5" (identifier "uVar2") (| "|") (identifier "uVar5"))) (; ";")) (expression_statement "uVar6 = uVar5;" (assignment_expression "uVar6 = uVar5" (identifier "uVar6") (= "=") (identifier "uVar5")) (; ";")) (} "}")))) (if_statement "if (((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }" (if "if") (parenthesized_expression "(((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26))" (( "(") (binary_expression "((uVar6 & 0x10000000) != 0) &&\n         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)" (parenthesized_expression "((uVar6 & 0x10000000) != 0)" (( "(") (binary_expression "(uVar6 & 0x10000000) != 0" (parenthesized_expression "(uVar6 & 0x10000000)" (( "(") (binary_expression "uVar6 & 0x10000000" (identifier "uVar6") (& "&") (number_literal "0x10000000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)" (( "(") (comma_expression "iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26" (assignment_expression "iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac))" (identifier "iVar1") (= "=") (call_expression "bfd_get_arch(*(undefined4 *)(param_2 + 0xac))" (identifier "bfd_get_arch") (argument_list "(*(undefined4 *)(param_2 + 0xac))" (( "(") (pointer_expression "*(undefined4 *)(param_2 + 0xac)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0xac)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xac)" (( "(") (binary_expression "param_2 + 0xac" (identifier "param_2") (+ "+") (number_literal "0xac")) () ")")))) () ")")))) (, ",") (binary_expression "iVar1 == 0x26" (identifier "iVar1") (== "==") (number_literal "0x26"))) () ")"))) () ")")) (compound_statement "{\n        *(undefined4 *)(param_4 + 0x3c) = 0x80;\n      }" ({ "{") (expression_statement "*(undefined4 *)(param_4 + 0x3c) = 0x80;" (assignment_expression "*(undefined4 *)(param_4 + 0x3c) = 0x80" (pointer_expression "*(undefined4 *)(param_4 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_4 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x3c)" (( "(") (binary_expression "param_4 + 0x3c" (identifier "param_4") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (number_literal "0x80")) (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(param_4 + 0x1c);" (assignment_expression "iVar1 = *(int *)(param_4 + 0x1c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_4 + 0x1c)" (* "*") (cast_expression "(int *)(param_4 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x1c)" (( "(") (binary_expression "param_4 + 0x1c" (identifier "param_4") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (if_statement "if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }" (if "if") (parenthesized_expression "(*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58))" (( "(") (binary_expression "*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)" (pointer_expression "*(uint *)(iVar1 + 0x58)" (* "*") (cast_expression "(uint *)(iVar1 + 0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x58)" (( "(") (binary_expression "iVar1 + 0x58" (identifier "iVar1") (+ "+") (number_literal "0x58")) () ")")))) (< "<") (pointer_expression "*(uint *)(param_2 + 0x58)" (* "*") (cast_expression "(uint *)(param_2 + 0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (compound_statement "{\n        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);\n      }" ({ "{") (expression_statement "*(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);" (assignment_expression "*(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58)" (pointer_expression "*(uint *)(iVar1 + 0x58)" (* "*") (cast_expression "(uint *)(iVar1 + 0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x58)" (( "(") (binary_expression "iVar1 + 0x58" (identifier "iVar1") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (pointer_expression "*(uint *)(param_2 + 0x58)" (* "*") (cast_expression "(uint *)(param_2 + 0x58)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x58)" (( "(") (binary_expression "param_2 + 0x58" (identifier "param_2") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6);" (assignment_expression "iVar4 = *(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6)" (* "*") (cast_expression "(int *)(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(\n                      "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6)" (( "(") (binary_expression ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP + 0x1fd6" (binary_expression ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                      + unaff_EBP" (string_literal ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..."" (" """) (escape_sequence "\n") (escape_sequence "\n") (string_content "OUTPUT_FORMAT(") (escape_sequence "\"") (string_content "elf32-littlearm") (escape_sequence "\"") (string_content ", ") (escape_sequence "\"") (string_content "elf32-bigarm") (escape_sequence "\"") (string_content ",") (escape_sequence "\n") (escape_sequence "\t") (string_content "      ") (escape_sequence "\"") (string_content "elf32-littlearm") (escape_sequence "\"") (string_content ")") (escape_sequence "\n") (string_content "OUTPUT_ARCH(arm)") (escape_sequence "\n") (string_content "ENTRY(_start)") (escape_sequence "\n") (string_content "SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/local/lib/aarch64-linux-gnu") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/lib/aarch64-linux-gnu") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/lib/aarch64-linux-gnu") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/local/lib") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/lib") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/lib") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/aarch64-linux-gnu/lib") (escape_sequence "\"") (string_content ");") (escape_sequence "\n") (string_content "SECTIONS") (escape_sequence "\n") (string_content "{") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  . = SEGMENT_START(") (escape_sequence "\"") (string_content "text-segment") (escape_sequence "\"") (string_content ", 0) + SIZEOF_HEADERS;") (escape_sequence "\n") (string_content "  .note.gnu.build-id : { *(.note.gnu.build-id) }") (escape_sequence "\n") (string_content "  .hash           : { *(.hash) }") (escape_sequence "\n") (string_content "  .gnu.hash       : { *(.gnu.hash) }") (escape_sequence "\n") (string_content "  .dynsym         : { *(.dynsym) }") (escape_sequence "\n") (string_content "  .dynstr         : { *(.dynstr) }") (escape_sequence "\n") (string_content "  .gnu.version    : { *(.gnu.version) }") (escape_sequence "\n") (string_content "  .gnu.version_d  : { *(.gnu.version_d) }") (escape_sequence "\n") (string_content "  .gnu.version_r  : { *(.gnu.version_r) }") (escape_sequence "\n") (string_content "  .rel.dyn        :") (escape_sequence "\n") (string_content "    {") (escape_sequence "\n") (string_content "      *(.rel.init)") (escape_sequence "\n") (string_content "      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)") (escape_sequence "\n") (string_content "      *(.rel.fini)") (escape_sequence "\n") (string_content "      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)") (escape_sequence "\n") (string_content "      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)") (escape_sequence "\n") (string_content "      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)") (escape_sequence "\n") (string_content "      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)") (escape_sequence "\n") (string_content "      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)") (escape_sequence "\n") (string_content "      *(.rel.ctors)") (escape_sequence "\n") (string_content "      *(.rel.dtors)") (escape_sequence "\n") (string_content "      *(.rel.got)") (escape_sequence "\n") (string_content "      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)") (escape_sequence "\n") (string_content "      *(.rel.iplt)") (escape_sequence "\n") (string_content "    }") (escape_sequence "\n") (string_content "  .rela.dyn       :") (escape_sequence "\n") (string_content "    {") (escape_sequence "\n") (string_content "      *(.rela.init)") (escape_sequence "\n") (string_content "      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)") (escape_sequence "\n") (string_content "      *(.rela.fini)") (escape_sequence "\n") (string_content "      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)") (escape_sequence "\n") (string_content "      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)") (escape_sequence "\n") (string_content "      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)") (escape_sequence "\n") (string_content "      *(.rela.tbss .rela.tbss.* .rela.gnu.lin...") (" """)) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "0x1fd6")) () ")"))))) (; ";")) (expression_statement "*(int *)(param_2 + 0x54) = iVar1;" (assignment_expression "*(int *)(param_2 + 0x54) = iVar1" (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (if_statement "if (iVar4 == 0) {\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar4 = *(int *)(iVar1 + 0xbc);\n        *(int *)(iVar1 + 0xbc) = param_2;\n        *(undefined4 *)(param_2 + 0xb8) = 0;\n        *(int *)(param_2 + 0xbc) = iVar4;\n        if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }\n      }" ({ "{") (expression_statement "iVar4 = *(int *)(iVar1 + 0xbc);" (assignment_expression "iVar4 = *(int *)(iVar1 + 0xbc)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar1 + 0xbc)" (* "*") (cast_expression "(int *)(iVar1 + 0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xbc)" (( "(") (binary_expression "iVar1 + 0xbc" (identifier "iVar1") (+ "+") (number_literal "0xbc")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar1 + 0xbc) = param_2;" (assignment_expression "*(int *)(iVar1 + 0xbc) = param_2" (pointer_expression "*(int *)(iVar1 + 0xbc)" (* "*") (cast_expression "(int *)(iVar1 + 0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xbc)" (( "(") (binary_expression "iVar1 + 0xbc" (identifier "iVar1") (+ "+") (number_literal "0xbc")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(undefined4 *)(param_2 + 0xb8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0xb8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0xb8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0xb8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xb8)" (( "(") (binary_expression "param_2 + 0xb8" (identifier "param_2") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)(param_2 + 0xbc) = iVar4;" (assignment_expression "*(int *)(param_2 + 0xbc) = iVar4" (pointer_expression "*(int *)(param_2 + 0xbc)" (* "*") (cast_expression "(int *)(param_2 + 0xbc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xbc)" (( "(") (binary_expression "param_2 + 0xbc" (identifier "param_2") (+ "+") (number_literal "0xbc")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (if_statement "if (iVar4 == 0) {\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }\n        else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" (if "if") (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)(iVar1 + 0xb8) = param_2;\n        }" ({ "{") (expression_statement "*(int *)(iVar1 + 0xb8) = param_2;" (assignment_expression "*(int *)(iVar1 + 0xb8) = param_2" (pointer_expression "*(int *)(iVar1 + 0xb8)" (* "*") (cast_expression "(int *)(iVar1 + 0xb8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xb8)" (( "(") (binary_expression "iVar1 + 0xb8" (identifier "iVar1") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" (else "else") (compound_statement "{\n          *(int *)(iVar4 + 0xb8) = param_2;\n        }" ({ "{") (expression_statement "*(int *)(iVar4 + 0xb8) = param_2;" (assignment_expression "*(int *)(iVar4 + 0xb8) = param_2" (pointer_expression "*(int *)(iVar4 + 0xb8)" (* "*") (cast_expression "(int *)(iVar4 + 0xb8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xb8)" (( "(") (binary_expression "iVar4 + 0xb8" (identifier "iVar4") (+ "+") (number_literal "0xb8")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (} "}")))) (} "}"))) (expression_statement "puVar3 = (undefined4 *)FUN_00023860(0xc);" (assignment_expression "puVar3 = (undefined4 *)FUN_00023860(0xc)" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)FUN_00023860(0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00023860(0xc)" (identifier "FUN_00023860") (argument_list "(0xc)" (( "(") (number_literal "0xc") () ")"))))) (; ";")) (expression_statement "puVar3[1] = 5;" (assignment_expression "puVar3[1] = 5" (subscript_expression "puVar3[1]" (identifier "puVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "5")) (; ";")) (expression_statement "*puVar3 = 0;" (assignment_expression "*puVar3 = 0" (pointer_expression "*puVar3" (* "*") (identifier "puVar3")) (= "=") (number_literal "0")) (; ";")) (expression_statement "**(undefined4 **)(param_1 + 4) = puVar3;" (assignment_expression "**(undefined4 **)(param_1 + 4) = puVar3" (pointer_expression "**(undefined4 **)(param_1 + 4)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")"))))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(undefined4 **)(param_1 + 4) = puVar3;" (assignment_expression "*(undefined4 **)(param_1 + 4) = puVar3" (pointer_expression "*(undefined4 **)(param_1 + 4)" (* "*") (cast_expression "(undefined4 **)(param_1 + 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar3[2] = param_2;" (assignment_expression "puVar3[2] = param_2" (subscript_expression "puVar3[2]" (identifier "puVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" (else "else") (if_statement "if (*(int *)(param_2 + 0x54) == 0) {\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_2 + 0x54) == 0)" (( "(") (binary_expression "*(int *)(param_2 + 0x54) == 0" (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;\n    return;\n  }" ({ "{") (expression_statement "*(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180;" (assignment_expression "*(int *)(param_2 + 0x54) =\n         *(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180" (pointer_expression "*(int *)(param_2 + 0x54)" (* "*") (cast_expression "(int *)(param_2 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x54)" (( "(") (binary_expression "param_2 + 0x54" (identifier "param_2") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (binary_expression "*(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686) + 0x180" (pointer_expression "*(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686)" (* "*") (cast_expression "(int *)(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(\n                 "\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686)" (( "(") (binary_expression ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP + 0x686" (binary_expression ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." \n                 + unaff_EBP" (string_literal ""\n\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  \n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..."" (" """) (escape_sequence "\n") (escape_sequence "\n") (string_content "OUTPUT_FORMAT(") (escape_sequence "\"") (string_content "elf32-littlearm") (escape_sequence "\"") (string_content ", ") (escape_sequence "\"") (string_content "elf32-bigarm") (escape_sequence "\"") (string_content ",") (escape_sequence "\n") (escape_sequence "\t") (string_content "      ") (escape_sequence "\"") (string_content "elf32-littlearm") (escape_sequence "\"") (string_content ")") (escape_sequence "\n") (string_content "OUTPUT_ARCH(arm)") (escape_sequence "\n") (string_content "ENTRY(_start)") (escape_sequence "\n") (string_content "SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/local/lib/aarch64-linux-gnu") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/lib/aarch64-linux-gnu") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/lib/aarch64-linux-gnu") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/local/lib") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/lib") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/lib") (escape_sequence "\"") (string_content "); SEARCH_DIR(") (escape_sequence "\"") (string_content "=/usr/aarch64-linux-gnu/lib") (escape_sequence "\"") (string_content ");") (escape_sequence "\n") (string_content "SECTIONS") (escape_sequence "\n") (string_content "{") (escape_sequence "\n") (string_content "  ") (escape_sequence "\n") (string_content "  . = SEGMENT_START(") (escape_sequence "\"") (string_content "text-segment") (escape_sequence "\"") (string_content ", 0) + SIZEOF_HEADERS;") (escape_sequence "\n") (string_content "  .note.gnu.build-id : { *(.note.gnu.build-id) }") (escape_sequence "\n") (string_content "  .hash           : { *(.hash) }") (escape_sequence "\n") (string_content "  .gnu.hash       : { *(.gnu.hash) }") (escape_sequence "\n") (string_content "  .dynsym         : { *(.dynsym) }") (escape_sequence "\n") (string_content "  .dynstr         : { *(.dynstr) }") (escape_sequence "\n") (string_content "  .gnu.version    : { *(.gnu.version) }") (escape_sequence "\n") (string_content "  .gnu.version_d  : { *(.gnu.version_d) }") (escape_sequence "\n") (string_content "  .gnu.version_r  : { *(.gnu.version_r) }") (escape_sequence "\n") (string_content "  .rel.dyn        :") (escape_sequence "\n") (string_content "    {") (escape_sequence "\n") (string_content "      *(.rel.init)") (escape_sequence "\n") (string_content "      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)") (escape_sequence "\n") (string_content "      *(.rel.fini)") (escape_sequence "\n") (string_content "      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)") (escape_sequence "\n") (string_content "      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)") (escape_sequence "\n") (string_content "      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)") (escape_sequence "\n") (string_content "      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)") (escape_sequence "\n") (string_content "      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)") (escape_sequence "\n") (string_content "      *(.rel.ctors)") (escape_sequence "\n") (string_content "      *(.rel.dtors)") (escape_sequence "\n") (string_content "      *(.rel.got)") (escape_sequence "\n") (string_content "      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)") (escape_sequence "\n") (string_content "      *(.rel.iplt)") (escape_sequence "\n") (string_content "    }") (escape_sequence "\n") (string_content "  .rela.dyn       :") (escape_sequence "\n") (string_content "    {") (escape_sequence "\n") (string_content "      *(.rela.init)") (escape_sequence "\n") (string_content "      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)") (escape_sequence "\n") (string_content "      *(.rela.fini)") (escape_sequence "\n") (string_content "      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)") (escape_sequence "\n") (string_content "      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)") (escape_sequence "\n") (string_content "      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)") (escape_sequence "\n") (string_content "      *(.rela.tbss .rela.tbss.* .rela.gnu.lin...") (" """)) (+ "+") (identifier "unaff_EBP")) (+ "+") (number_literal "0x686")) () ")")))) (+ "+") (number_literal "0x180"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 *ptr,type_2 *section,type_3 *var_6,
                     type_4 *output)

{
  type_2 *section_00;
  type_5 *pbVar1;
  type_5 *var_16;
  type_6 var_5;
  type_7 var_13;
  type_8 *plVar5;
  int var_2;
  type_7 var_14;
  type_9 var_11;
  type_7 var_9;
  type_10 *var_3;
  type_10 *var_4;
  type_11 uVar11;
  type_11 uVar12;
  type_10 bVar13;
  
  bVar13 = 0;
  uVar11 = &stack0xfffffff0 < (type_11 *)0xc;
  uVar12 = &stack0x00000000 == (type_11 *)0x1c;
  section_00 = (type_2 *)section->var_9;
  var_5 = var_1(section_00);
  var_2 = 10;
  var_3 = (type_10 *)output->name;
  var_4 = (type_10 *)"/DISCARD/";
  do {
    if (var_2 == 0) break;
    var_2 = var_2 + -1;
    uVar11 = *var_3 < *var_4;
    uVar12 = *var_3 == *var_4;
    var_3 = var_3 + (type_7)bVar13 * -2 + 1;
    var_4 = var_4 + (type_7)bVar13 * -2 + 1;
  } while ((bool)uVar12);
  if ((var_5 == 0) && ((!(bool)uVar11 && !(bool)uVar12) != (bool)uVar11)) {
    if (((var_6 == (type_3 *)0x0) ||
        (var_5 = (*(link_info.output_bfd)->xvec->_bfd_lookup_section_flags)
                           (&link_info,var_6,section), var_5 != 0)) &&
       (section->output_section == (type_5 *)0x0)) {
      if (((type_7)section_00 & 0x2020000) == 0x2020000) {
        var_9 = (type_7)section_00 & 0xfff3fdfb;
        if ((link_info._1_1_ & 0x10) != 0) {
          var_9 = (type_7)section_00 & 0xfff1fdfb;
        }
      }
      else {
        var_9 = (type_7)section_00 & 0xfff1fdfb;
        if ((link_info._0_1_ & 3) == 2) {
          var_9 = (type_7)section_00 & 0xfffffdff;
        }
      }
      if (output->sectype == var_7) {
        if ((link_info.output_bfd)->xvec->flavour == var_8) {
          var_9 = var_9 & 0xfffffefd | 0x200;
        }
        else {
          var_9 = var_9 & 0xfffffffc | 0x200;
        }
      }
      else if (output->sectype == var_10) {
        var_9 = var_9 & 0xfffffffe;
      }
      var_11 = output->type_5;
      if (var_11 == (type_9)0x0) {
        var_12(output,var_9);
        var_11 = output->type_5;
      }
      var_13 = (var_9 | 0xfffffff7) & var_11->var_9;
      var_11->var_9 = var_13;
      if ((var_11->field_0x18 & 4) == 0) {
        var_11->field_0x18 = var_11->field_0x18 | 4;
        var_11->var_9 = var_13 | var_9;
        (*(link_info.output_bfd)->xvec->_bfd_init_private_section_data)
                  (section->owner,section,link_info.output_bfd,var_11,&link_info);
        if ((var_9 & 0x800000) != 0) {
          output->type_5->entsize = section->entsize;
        }
      }
      else {
        var_14 = var_9 & 0xfffffff7;
        if ((((var_13 ^ var_14) & 0x1800000) != 0) ||
           (((var_9 & 0x800000) != 0 && (var_11->entsize != section->entsize)))) {
          var_13 = var_13 & 0xfe7fffff;
          var_14 = var_9 & 0xfe7ffff7;
        }
        var_11->var_9 = var_13 | var_14;
        var_9 = var_14;
      }
      if (((var_9 & 0x10000000) != 0) && (var_2 = var_15(section->owner), var_2 == 0x26)) {
        output->block_value = 0x80;
      }
      pbVar1 = output->type_5;
      if (pbVar1->alignment_power < section->alignment_power) {
        pbVar1->alignment_power = section->alignment_power;
      }
      var_5 = map_head_is_link_order;
      section->output_section = pbVar1;
      if (var_5 == 0) {
        var_16 = (pbVar1->map_tail).s;
        (pbVar1->map_tail).link_order = (type_12 *)section;
        (section->map_head).link_order = (type_12 *)0x0;
        (section->map_tail).s = var_16;
        if (var_16 == (type_5 *)0x0) {
          (pbVar1->map_head).link_order = (type_12 *)section;
        }
        else {
          (var_16->map_head).link_order = (type_12 *)section;
        }
      }
      plVar5 = (type_8 *)var_17(0xc);
      (plVar5->header).type = lang_input_section_enum;
      (plVar5->header).next = (type_8 *)0x0;
      *ptr->tail = plVar5;
      ptr->tail = (type_8 **)plVar5;
      (plVar5->input_section).section = section;
      return;
    }
  }
  else if (section->output_section == (type_5 *)0x0) {
    section->output_section = (type_5 *)(var_18 + 0x180);
    return;
  }
  return;
}


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

void MASKED(int param_1,int param_2,int param_3,int param_4)

{
  int iVar1;
  uint uVar2;
  undefined4 *puVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  int unaff_EBP;
  byte *pbVar7;
  byte *pbVar8;
  undefined1 uVar9;
  undefined1 uVar10;
  byte bVar11;
  
  bVar11 = 0;
  FUN_0001d3ba();
  uVar9 = &stack0xfffffff0 < (undefined1 *)0xc;
  uVar10 = &stack0x00000000 == (undefined1 *)0x1c;
  uVar2 = *(uint *)(param_2 + 0x14);
  iVar1 = FUN_00021350();
  iVar4 = 10;
  pbVar7 = *(byte **)(param_4 + 0x18);
  pbVar8 = (byte *)(unaff_EBP + 0x58988);
  do {
    if (iVar4 == 0) break;
    iVar4 = iVar4 + -1;
    uVar9 = *pbVar7 < *pbVar8;
    uVar10 = *pbVar7 == *pbVar8;
    pbVar7 = pbVar7 + (uint)bVar11 * -2 + 1;
    pbVar8 = pbVar8 + (uint)bVar11 * -2 + 1;
  } while ((bool)uVar10);
  if ((iVar1 == 0) && ((!(bool)uVar9 && !(bool)uVar10) != (bool)uVar9)) {
    if (((param_3 == 0) ||
        (iVar1 = (**(code **)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc +
                                               unaff_EBP + 2) + 4) + 0x188))
                           (unaff_EBP + 0x19dfea,param_3,param_2), iVar1 != 0)) &&
       (*(int *)(param_2 + 0x54) == 0)) {
      pbVar7 = (byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 2);
      if ((uVar2 & 0x2020000) == 0x2020000) {
        uVar6 = uVar2 & 0xfff3fdfb;
        if ((*(byte *)((int)&fde_table_entry_0019dfe4.data_loc + unaff_EBP + 3) & 0x10) != 0) {
          uVar6 = uVar2 & 0xfff1fdfb;
        }
      }
      else {
        uVar6 = uVar2 & 0xfff1fdfb;
        if ((*pbVar7 & 3) == 2) {
          uVar6 = uVar2 & 0xfffffdff;
        }
      }
      if (*(int *)(param_4 + 0x50) == 2) {
        if (*(int *)(*(int *)(*(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2) +
                             4) + 4) == 5) {
          uVar6 = uVar6 & 0xfffffefd | 0x200;
        }
        else {
          uVar6 = uVar6 & 0xfffffffc | 0x200;
        }
      }
      else if (*(int *)(param_4 + 0x50) == 3) {
        uVar6 = uVar6 & 0xfffffffe;
      }
      iVar1 = *(int *)(param_4 + 0x1c);
      if (iVar1 == 0) {
        FUN_00025a80();
        iVar1 = *(int *)(param_4 + 0x1c);
      }
      uVar2 = (uVar6 | 0xfffffff7) & *(uint *)(iVar1 + 0x14);
      *(uint *)(iVar1 + 0x14) = uVar2;
      if ((*(byte *)(iVar1 + 0x18) & 4) == 0) {
        *(byte *)(iVar1 + 0x18) = *(byte *)(iVar1 + 0x18) | 4;
        *(uint *)(iVar1 + 0x14) = uVar2 | uVar6;
        iVar4 = *(int *)((int)&fde_table_entry_0019e01c.initial_loc + unaff_EBP + 2);
        (**(code **)(*(int *)(iVar4 + 4) + 0xb0))
                  (*(undefined4 *)(param_2 + 0xac),param_2,iVar4,iVar1,pbVar7);
        if ((uVar6 & 0x800000) != 0) {
          *(undefined4 *)(*(int *)(param_4 + 0x1c) + 0x90) = *(undefined4 *)(param_2 + 0x90);
        }
      }
      else {
        uVar5 = uVar6 & 0xfffffff7;
        if ((((uVar2 ^ uVar5) & 0x1800000) != 0) ||
           (((uVar6 & 0x800000) != 0 && (*(int *)(iVar1 + 0x90) != *(int *)(param_2 + 0x90))))) {
          uVar2 = uVar2 & 0xfe7fffff;
          uVar5 = uVar6 & 0xfe7ffff7;
        }
        *(uint *)(iVar1 + 0x14) = uVar2 | uVar5;
        uVar6 = uVar5;
      }
      if (((uVar6 & 0x10000000) != 0) &&
         (iVar1 = bfd_get_arch(*(undefined4 *)(param_2 + 0xac)), iVar1 == 0x26)) {
        *(undefined4 *)(param_4 + 0x3c) = 0x80;
      }
      iVar1 = *(int *)(param_4 + 0x1c);
      if (*(uint *)(iVar1 + 0x58) < *(uint *)(param_2 + 0x58)) {
        *(uint *)(iVar1 + 0x58) = *(uint *)(param_2 + 0x58);
      }
      iVar4 = *(int *)(
                      "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */
                      + unaff_EBP + 0x1fd6);
      *(int *)(param_2 + 0x54) = iVar1;
      if (iVar4 == 0) {
        iVar4 = *(int *)(iVar1 + 0xbc);
        *(int *)(iVar1 + 0xbc) = param_2;
        *(undefined4 *)(param_2 + 0xb8) = 0;
        *(int *)(param_2 + 0xbc) = iVar4;
        if (iVar4 == 0) {
          *(int *)(iVar1 + 0xb8) = param_2;
        }
        else {
          *(int *)(iVar4 + 0xb8) = param_2;
        }
      }
      puVar3 = (undefined4 *)FUN_00023860(0xc);
      puVar3[1] = 5;
      *puVar3 = 0;
      **(undefined4 **)(param_1 + 4) = puVar3;
      *(undefined4 **)(param_1 + 4) = puVar3;
      puVar3[2] = param_2;
      return;
    }
  }
  else if (*(int *)(param_2 + 0x54) == 0) {
    *(int *)(param_2 + 0x54) =
         *(int *)(
                 "/* Script for --shared -z combreloc -z separate-code: shared library, combine & sort relocs with separate code segment */\n/* Copyright (C) 2014-2018 Free Software Foundation, Inc.\n   Copying and distribution of this script, with or without modification,\n   are permitted in any medium without royalty provided the copyright\n   notice and this notice are preserved.  */\nOUTPUT_FORMAT(\"elf32-littlearm\", \"elf32-bigarm\",\n\t      \"elf32-littlearm\")\nOUTPUT_ARCH(arm)\nENTRY(_start)\nSEARCH_DIR(\"=/usr/local/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/lib/aarch64-linux-gnu\"); SEARCH_DIR(\"=/usr/local/lib\"); SEARCH_DIR(\"=/lib\"); SEARCH_DIR(\"=/usr/lib\"); SEARCH_DIR(\"=/usr/aarch64-linux-gnu/lib\");\nSECTIONS\n{\n  /* Read-only sections, merged into text segment: */\n  . = SEGMENT_START(\"text-segment\", 0) + SIZEOF_HEADERS;\n  .note.gnu.build-id : { *(.note.gnu.build-id) }\n  .hash           : { *(.hash) }\n  .gnu.hash       : { *(.gnu.hash) }\n  .dynsym         : { *(.dynsym) }\n  .dynstr         : { *(.dynstr) }\n  .gnu.version    : { *(.gnu.version) }\n  .gnu.version_d  : { *(.gnu.version_d) }\n  .gnu.version_r  : { *(.gnu.version_r) }\n  .rel.dyn        :\n    {\n      *(.rel.init)\n      *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)\n      *(.rel.fini)\n      *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)\n      *(.rel.data.rel.ro .rel.data.rel.ro.* .rel.gnu.linkonce.d.rel.ro.*)\n      *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)\n      *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)\n      *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)\n      *(.rel.ctors)\n      *(.rel.dtors)\n      *(.rel.got)\n      *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)\n      *(.rel.iplt)\n    }\n  .rela.dyn       :\n    {\n      *(.rela.init)\n      *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)\n      *(.rela.fini)\n      *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)\n      *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)\n      *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)\n      *(.rela.tbss .rela.tbss.* .rela.gnu.lin..." /* TRUNCATED STRING LITERAL */
                 + unaff_EBP + 0x686) + 0x180;
    return;
  }
  return;
}

