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

void make_import_fixup(arelent *rel,asection *s,char *name,char *symname)

{
  uint uVar1;
  bfd_target *pbVar2;
  int iVar3;
  char *fmt;
  reloc_howto_type *prVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  bfd *pbVar7;
  bfd_vma addend_00;
  undefined4 uVar8;
  char addend [8];
  
  uVar6 = (undefined4)rel->address;
  uVar5 = *(undefined4 *)((int)&rel->address + 4);
  if (pep_dll_extra_pe_debug != 0) {
    printf("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend);
    uVar6 = (undefined4)rel->address;
    uVar5 = *(undefined4 *)((int)&rel->address + 4);
  }
  addend[0] = '\0';
  addend[1] = '\0';
  addend[2] = '\0';
  addend[3] = '\0';
  addend[4] = '\0';
  addend[5] = '\0';
  addend[6] = '\0';
  addend[7] = '\0';
  uVar1 = rel->howto->bitsize;
  pbVar7 = s->owner;
  if (uVar1 == 0x10) {
    iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0);
    if (iVar3 != 0) {
      pbVar2 = s->owner->xvec;
      if (rel->howto->pc_relative == 0) {
        addend_00 = (*pbVar2->bfd_getx16)(addend);
      }
      else {
        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);
      }
      goto LAB_000527e0;
    }
LAB_00052797:
    uVar6 = (undefined4)rel->address;
    uVar5 = *(undefined4 *)((int)&rel->address + 4);
    pbVar7 = s->owner;
  }
  else {
    if (0x10 < uVar1) {
      if (uVar1 == 0x20) {
        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);
        if (iVar3 != 0) {
          pbVar2 = s->owner->xvec;
          if (rel->howto->pc_relative == 0) {
            addend_00 = (*pbVar2->bfd_getx32)(addend);
          }
          else {
            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);
          }
          goto LAB_000527e0;
        }
      }
      else {
        if (uVar1 != 0x40) goto LAB_000527a7;
        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);
        if (iVar3 != 0) {
          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);
          goto LAB_000527e0;
        }
      }
      goto LAB_00052797;
    }
    if (uVar1 == 8) {
      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);
      if (iVar3 != 0) {
        if (rel->howto->pc_relative == 0) {
          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);
        }
        else {
          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);
        }
        goto LAB_000527e0;
      }
      goto LAB_00052797;
    }
  }
LAB_000527a7:
  fmt = (char *)dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);
  addend_00 = 0;
  einfo(fmt,pbVar7,s,uVar6,uVar5);
LAB_000527e0:
  uVar6 = (undefined4)addend_00;
  if (pep_dll_extra_pe_debug != 0) {
    uVar5 = (undefined4)rel->address;
    uVar8 = (undefined4)rel->addend;
    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5);
    prVar4 = rel->howto;
    if (prVar4->pc_relative != 0) {
      printf(" pcrel",uVar6,uVar8,uVar5);
      prVar4 = rel->howto;
    }
    printf(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5);
  }
  pep_create_import_fixup(rel,s,addend_00,name,symname);
  return;
}



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

void FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)

{
  uint uVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  ulonglong uVar7;
  uint local_24 [4];
  undefined4 uStack_14;
  
  uStack_14 = 0x52689;
  uVar5 = param_1[1];
  uVar4 = param_1[2];
  if (DAT_001d1144 != 0) {
    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);
    uVar5 = param_1[1];
    uVar4 = param_1[2];
  }
  local_24[0] = 0;
  local_24[1] = 0;
  uVar1 = *(uint *)(param_1[5] + 0xc);
  uVar6 = *(undefined4 *)(param_2 + 0xac);
  if (uVar1 == 0x10) {
    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);
    if (iVar2 != 0) {
      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);
      if (*(int *)(param_1[5] + 0x10) == 0) {
        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);
      }
      else {
        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);
      }
      goto LAB_000527e0;
    }
LAB_00052797:
    uVar5 = param_1[1];
    uVar4 = param_1[2];
    uVar6 = *(undefined4 *)(param_2 + 0xac);
  }
  else {
    if (0x10 < uVar1) {
      if (uVar1 == 0x20) {
        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);
        if (iVar2 != 0) {
          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);
          if (*(int *)(param_1[5] + 0x10) == 0) {
            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);
          }
          else {
            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);
          }
          goto LAB_000527e0;
        }
      }
      else {
        if (uVar1 != 0x40) goto LAB_000527a7;
        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);
        if (iVar2 != 0) {
          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);
          goto LAB_000527e0;
        }
      }
      goto LAB_00052797;
    }
    if (uVar1 == 8) {
      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);
      if (iVar2 != 0) {
        if (*(int *)(param_1[5] + 0x10) == 0) {
          uVar7 = (ulonglong)(local_24[0] & 0xff);
        }
        else {
          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);
        }
        goto LAB_000527e0;
      }
      goto LAB_00052797;
    }
  }
LAB_000527a7:
  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);
  uVar7 = 0;
  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);
LAB_000527e0:
  uVar5 = (undefined4)uVar7;
  if (DAT_001d1144 != 0) {
    uVar4 = param_1[1];
    uVar6 = param_1[3];
    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);
    iVar2 = param_1[5];
    if (*(int *)(iVar2 + 0x10) != 0) {
      printf(" pcrel",uVar5,uVar6,uVar4);
      iVar2 = param_1[5];
    }
    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);
  }
  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00017b80
ADD EBX,0x17c977
SUB ESP,0x2c
MOV ESI,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [ESI + 0x8]
LEA EAX,[EBX + 0x2144]
MOV EDI,dword ptr [EAX]
MOV dword ptr [ESP + 0x4],EAX
TEST EDI,EDI
JNZ 0x00052850
MOV EAX,dword ptr [ESI + 0x14]
MOV EDI,dword ptr [ESP + 0x44]
LEA EBP,[ESP + 0x18]
MOV dword ptr [ESP + 0x18],0x0
MOV dword ptr [ESP + 0x1c],0x0
MOV EAX,dword ptr [EAX + 0xc]
MOV EDI,dword ptr [EDI + 0xac]
CMP EAX,0x10
JZ 0x00052878
JBE 0x00052730
CMP EAX,0x20
JZ 0x00052778
CMP EAX,0x40
JNZ 0x000527a7
SUB ESP,0x4
PUSH 0x0
PUSH 0x8
PUSH ECX
PUSH EDX
PUSH EBP
PUSH dword ptr [ESP + 0x5c]
PUSH EDI
CALL 0x000162f0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00052797
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x50]
MOV EAX,dword ptr [EAX + 0xac]
MOV EAX,dword ptr [EAX + 0x4]
PUSH EBP
CALL dword ptr [EAX + 0x1c]
MOV EDI,EAX
MOV EBP,EDX
ADD ESP,0x10
JMP 0x000527e0
CMP EAX,0x8
JNZ 0x000527a7
SUB ESP,0x4
PUSH 0x0
PUSH 0x1
PUSH ECX
PUSH EDX
PUSH EBP
PUSH dword ptr [ESP + 0x5c]
PUSH EDI
CALL 0x000162f0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00052797
MOV EDX,dword ptr [ESI + 0x14]
MOVZX EAX,byte ptr [ESP + 0x18]
MOV ECX,dword ptr [EDX + 0x10]
TEST ECX,ECX
JZ 0x00052948
ADD EAX,-0x80
MOVZX EDI,AL
ADD EDI,-0x80
MOV EBP,EDI
SAR EBP,0x1f
JMP 0x000527e0
SUB ESP,0x4
PUSH 0x0
PUSH 0x4
PUSH ECX
PUSH EDX
PUSH EBP
PUSH dword ptr [ESP + 0x5c]
PUSH EDI
CALL 0x000162f0
ADD ESP,0x20
TEST EAX,EAX
JNZ 0x000528c8
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [ESI + 0x8]
MOV EDI,dword ptr [EAX + 0xac]
MOV dword ptr [ESP + 0x8],EDX
LEA EAX,[EBX + 0xfffc64e0]
SUB ESP,0x4
XOR EBP,EBP
MOV dword ptr [ESP + 0x10],ECX
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x00016310
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP],ECX
PUSH EDX
PUSH dword ptr [ESP + 0x58]
PUSH EDI
XOR EDI,EDI
PUSH EAX
CALL 0x00034d20
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x4]
MOV ECX,dword ptr [EAX]
TEST ECX,ECX
JNZ 0x00052810
SUB ESP,0x8
PUSH dword ptr [ESP + 0x54]
PUSH dword ptr [ESP + 0x54]
PUSH EBP
PUSH EDI
PUSH dword ptr [ESP + 0x5c]
PUSH ESI
CALL 0x0005d9d0
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBX + 0xfffc6520]
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESI + 0xc]
PUSH EDI
PUSH EAX
CALL 0x00016110
MOV EAX,dword ptr [ESI + 0x14]
ADD ESP,0x10
MOV EDX,dword ptr [EAX + 0x10]
TEST EDX,EDX
JNZ 0x000528f8
SUB ESP,0x8
PUSH dword ptr [EAX + 0xc]
LEA EAX,[EBX + 0xfffc4c56]
PUSH EAX
CALL 0x00016110
ADD ESP,0x10
JMP 0x000527ea
MOV EAX,dword ptr [ESI]
PUSH dword ptr [ESI + 0xc]
PUSH EDX
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EAX + 0x4]
LEA EAX,[EBX + 0xfffc4c34]
PUSH EAX
CALL 0x00016110
MOV EDX,dword ptr [ESI + 0x4]
MOV ECX,dword ptr [ESI + 0x8]
ADD ESP,0x10
JMP 0x000526b0
SUB ESP,0x4
PUSH 0x0
PUSH 0x2
PUSH ECX
PUSH EDX
PUSH EBP
PUSH dword ptr [ESP + 0x5c]
PUSH EDI
CALL 0x000162f0
ADD ESP,0x20
TEST EAX,EAX
JZ 0x00052797
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESI + 0x14]
MOV EAX,dword ptr [EAX + 0xac]
MOV EDX,dword ptr [EDX + 0x10]
MOV EAX,dword ptr [EAX + 0x4]
TEST EDX,EDX
JZ 0x00052918
SUB ESP,0xc
PUSH EBP
CALL dword ptr [EAX + 0x38]
MOV EDI,EAX
MOV EBP,EDX
ADD ESP,0x10
JMP 0x000527e0
MOV EAX,dword ptr [ESP + 0x44]
MOV EDX,dword ptr [ESI + 0x14]
MOV EAX,dword ptr [EAX + 0xac]
MOV EDI,dword ptr [EDX + 0x10]
MOV EAX,dword ptr [EAX + 0x4]
TEST EDI,EDI
JZ 0x00052930
SUB ESP,0xc
PUSH EBP
CALL dword ptr [EAX + 0x2c]
MOV EDI,EAX
MOV EBP,EDX
ADD ESP,0x10
JMP 0x000527e0
SUB ESP,0xc
LEA EAX,[EBX + 0xfffc4c4f]
PUSH EAX
CALL 0x00016110
MOV EAX,dword ptr [ESI + 0x14]
ADD ESP,0x10
JMP 0x00052834
SUB ESP,0xc
PUSH EBP
CALL dword ptr [EAX + 0x34]
MOV EDI,EAX
MOV EBP,EDX
ADD ESP,0x10
JMP 0x000527e0
SUB ESP,0xc
PUSH EBP
CALL dword ptr [EAX + 0x28]
MOV EDI,EAX
MOV EBP,EDX
ADD ESP,0x10
JMP 0x000527e0
MOVZX EDI,AL
XOR EBP,EBP
JMP 0x000527e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  ulonglong uVar7;\n  uint local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x52689;\n  uVar5 = param_1[1];\n  uVar4 = param_1[2];\n  if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }\n  local_24[0] = 0;\n  local_24[1] = 0;\n  uVar1 = *(uint *)(param_1[5] + 0xc);\n  uVar6 = *(undefined4 *)(param_2 + 0xac);\n  if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  uVar7 = 0;\n  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);\nLAB_000527e0:\n  uVar5 = (undefined4)uVar7;\n  if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }\n  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);\n  return;\n}\n\n" comment (function_definition "void FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  ulonglong uVar7;\n  uint local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x52689;\n  uVar5 = param_1[1];\n  uVar4 = param_1[2];\n  if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }\n  local_24[0] = 0;\n  local_24[1] = 0;\n  uVar1 = *(uint *)(param_1[5] + 0xc);\n  uVar6 = *(undefined4 *)(param_2 + 0xac);\n  if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  uVar7 = 0;\n  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);\nLAB_000527e0:\n  uVar5 = (undefined4)uVar7;\n  if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }\n  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);\n  return;\n}" primitive_type (function_declarator "FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  ulonglong uVar7;\n  uint local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x52689;\n  uVar5 = param_1[1];\n  uVar4 = param_1[2];\n  if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }\n  local_24[0] = 0;\n  local_24[1] = 0;\n  uVar1 = *(uint *)(param_1[5] + 0xc);\n  uVar6 = *(undefined4 *)(param_2 + 0xac);\n  if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  uVar7 = 0;\n  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);\nLAB_000527e0:\n  uVar5 = (undefined4)uVar7;\n  if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }\n  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "uint local_24 [4];" type_identifier (array_declarator "local_24 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x52689;" (assignment_expression "uStack_14 = 0x52689" identifier = number_literal) ;) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (if_statement "if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }" if (parenthesized_expression "(DAT_001d1144 != 0)" ( (binary_expression "DAT_001d1144 != 0" identifier != number_literal) )) (compound_statement "{\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }" { (expression_statement "printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);" (call_expression "printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3])" identifier (argument_list "("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3])" ( (string_literal ""arelent: %s@%#lx: add=%li\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(*(int *)*param_1 + 4)" * (cast_expression "(undefined4 *)(*(int *)*param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)*param_1 + 4)" ( (binary_expression "*(int *)*param_1 + 4" (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) + number_literal) )))) , identifier , (subscript_expression "param_1[3]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) })) (expression_statement "local_24[0] = 0;" (assignment_expression "local_24[0] = 0" (subscript_expression "local_24[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_24[1] = 0;" (assignment_expression "local_24[1] = 0" (subscript_expression "local_24[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar1 = *(uint *)(param_1[5] + 0xc);" (assignment_expression "uVar1 = *(uint *)(param_1[5] + 0xc)" identifier = (pointer_expression "*(uint *)(param_1[5] + 0xc)" * (cast_expression "(uint *)(param_1[5] + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[5] + 0xc)" ( (binary_expression "param_1[5] + 0xc" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(param_2 + 0xac);" (assignment_expression "uVar6 = *(undefined4 *)(param_2 + 0xac)" identifier = (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) ))))) ;) (if_statement "if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" if (parenthesized_expression "(uVar1 == 0x10)" ( (binary_expression "uVar1 == 0x10" identifier == number_literal) )) (compound_statement "{\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }" { (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0)" identifier = (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0)" identifier (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,2,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }" { (expression_statement "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" * (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" ( (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" * (cast_expression "(int *)(param_2 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" if (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" ( (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" * (cast_expression "(int *)(param_1[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[5] + 0x10)" ( (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }" { (expression_statement "uVar7 = (**(code **)(iVar2 + 0x34))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x34))(local_24)" identifier = (call_expression "(**(code **)(iVar2 + 0x34))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x34))" ( (pointer_expression "**(code **)(iVar2 + 0x34)" * (pointer_expression "*(code **)(iVar2 + 0x34)" * (cast_expression "(code **)(iVar2 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) }) (else_clause "else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" else (compound_statement "{\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" { (expression_statement "uVar7 = (**(code **)(iVar2 + 0x38))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x38))(local_24)" identifier = (call_expression "(**(code **)(iVar2 + 0x38))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x38))" ( (pointer_expression "**(code **)(iVar2 + 0x38)" * (pointer_expression "*(code **)(iVar2 + 0x38)" * (cast_expression "(code **)(iVar2 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) (labeled_statement "LAB_00052797:\n    uVar5 = param_1[1];" statement_identifier : (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = *(undefined4 *)(param_2 + 0xac);" (assignment_expression "uVar6 = *(undefined4 *)(param_2 + 0xac)" identifier = (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) ))))) ;) }) (else_clause "else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" else (compound_statement "{\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" { (if_statement "if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }" if (parenthesized_expression "(0x10 < uVar1)" ( (binary_expression "0x10 < uVar1" number_literal < identifier) )) (compound_statement "{\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }" { (if_statement "if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" if (parenthesized_expression "(uVar1 == 0x20)" ( (binary_expression "uVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }" { (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0)" identifier = (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0)" identifier (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,4,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }" { (expression_statement "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" * (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" ( (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" * (cast_expression "(int *)(param_2 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" if (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" ( (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" * (cast_expression "(int *)(param_1[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[5] + 0x10)" ( (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }" { (expression_statement "uVar7 = (**(code **)(iVar2 + 0x28))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x28))(local_24)" identifier = (call_expression "(**(code **)(iVar2 + 0x28))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x28))" ( (pointer_expression "**(code **)(iVar2 + 0x28)" * (pointer_expression "*(code **)(iVar2 + 0x28)" * (cast_expression "(code **)(iVar2 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) }) (else_clause "else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" else (compound_statement "{\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" { (expression_statement "uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x2c))(local_24)" identifier = (call_expression "(**(code **)(iVar2 + 0x2c))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x2c))" ( (pointer_expression "**(code **)(iVar2 + 0x2c)" * (pointer_expression "*(code **)(iVar2 + 0x2c)" * (cast_expression "(code **)(iVar2 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" else (compound_statement "{\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" { (if_statement "if (uVar1 != 0x40) goto LAB_000527a7;" if (parenthesized_expression "(uVar1 != 0x40)" ( (binary_expression "uVar1 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_000527a7;" goto statement_identifier ;)) (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0)" identifier = (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0)" identifier (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,8,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }" { (expression_statement "uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);" (assignment_expression "uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24)" identifier = (call_expression "(**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))" ( (pointer_expression "**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" * (pointer_expression "*(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" * (cast_expression "(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" ( (binary_expression "*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c" (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" * (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" ( (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" * (cast_expression "(int *)(param_2 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00052797;" goto statement_identifier ;) })) (if_statement "if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }" if (parenthesized_expression "(uVar1 == 8)" ( (binary_expression "uVar1 == 8" identifier == number_literal) )) (compound_statement "{\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }" { (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0)" identifier = (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0)" identifier (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,1,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }" { (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" if (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" ( (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" * (cast_expression "(int *)(param_1[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[5] + 0x10)" ( (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }" { (expression_statement "uVar7 = (ulonglong)(local_24[0] & 0xff);" (assignment_expression "uVar7 = (ulonglong)(local_24[0] & 0xff)" identifier = (call_expression "(ulonglong)(local_24[0] & 0xff)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(local_24[0] & 0xff)" ( (binary_expression "local_24[0] & 0xff" (subscript_expression "local_24[0]" identifier [ number_literal ]) & number_literal) )))) ;) }) (else_clause "else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" else (compound_statement "{\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" { (expression_statement "uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);" (assignment_expression "uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80)" identifier = (call_expression "(ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80)" (call_expression "(ulonglong)(int)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "((byte)((char)local_24[0] + 0x80) - 0x80)" ( (binary_expression "(byte)((char)local_24[0] + 0x80) - 0x80" (call_expression "(byte)((char)local_24[0] + 0x80)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((char)local_24[0] + 0x80)" ( (binary_expression "(char)local_24[0] + 0x80" (cast_expression "(char)local_24[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_24[0]" identifier [ number_literal ])) + number_literal) ))) - number_literal) )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00052797;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);" (assignment_expression "uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" identifier = (call_expression "dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" identifier (argument_list "(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" ( number_literal , (string_literal ""%P: %C: cannot get section contents - auto-import exception\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);" (call_expression "FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4)" identifier (argument_list "(uVar3,uVar6,param_2,uVar5,uVar4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000527e0:\n  uVar5 = (undefined4)uVar7;" statement_identifier : (expression_statement "uVar5 = (undefined4)uVar7;" (assignment_expression "uVar5 = (undefined4)uVar7" identifier = (cast_expression "(undefined4)uVar7" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;)) (if_statement "if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }" if (parenthesized_expression "(DAT_001d1144 != 0)" ( (binary_expression "DAT_001d1144 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }" { (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[3];" (assignment_expression "uVar6 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);" (call_expression "printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4)" identifier (argument_list "("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4)" ( (string_literal ""import of 0x%lx(0x%lx) sec_addr=0x%lx"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x10) != 0" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }" { (expression_statement "printf(" pcrel",uVar5,uVar6,uVar4);" (call_expression "printf(" pcrel",uVar5,uVar6,uVar4)" identifier (argument_list "(" pcrel",uVar5,uVar6,uVar4)" ( (string_literal "" pcrel"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) })) (expression_statement "printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);" (call_expression "printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4)" identifier (argument_list "(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4)" ( (string_literal "" %d bit rel.\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(iVar2 + 0xc)" * (cast_expression "(undefined4 *)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) , identifier , identifier ))) ;) })) (expression_statement "FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);" (call_expression "FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4)" identifier (argument_list "(param_1,param_2,uVar7,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid make_import_fixup(arelent *rel,asection *s,char *name,char *symname)\n\n{\n  uint uVar1;\n  bfd_target *pbVar2;\n  int iVar3;\n  char *fmt;\n  reloc_howto_type *prVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  bfd *pbVar7;\n  bfd_vma addend_00;\n  undefined4 uVar8;\n  char addend [8];\n  \n  uVar6 = (undefined4)rel->address;\n  uVar5 = *(undefined4 *)((int)&rel->address + 4);\n  if (pep_dll_extra_pe_debug != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend);\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n  }\n  addend[0] = '\0';\n  addend[1] = '\0';\n  addend[2] = '\0';\n  addend[3] = '\0';\n  addend[4] = '\0';\n  addend[5] = '\0';\n  addend[6] = '\0';\n  addend[7] = '\0';\n  uVar1 = rel->howto->bitsize;\n  pbVar7 = s->owner;\n  if (uVar1 == 0x10) {\n    iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0);\n    if (iVar3 != 0) {\n      pbVar2 = s->owner->xvec;\n      if (rel->howto->pc_relative == 0) {\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }\n      else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n    pbVar7 = s->owner;\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);\n      if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  fmt = (char *)dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  addend_00 = 0;\n  einfo(fmt,pbVar7,s,uVar6,uVar5);\nLAB_000527e0:\n  uVar6 = (undefined4)addend_00;\n  if (pep_dll_extra_pe_debug != 0) {\n    uVar5 = (undefined4)rel->address;\n    uVar8 = (undefined4)rel->addend;\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5);\n    prVar4 = rel->howto;\n    if (prVar4->pc_relative != 0) {\n      printf(" pcrel",uVar6,uVar8,uVar5);\n      prVar4 = rel->howto;\n    }\n    printf(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5);\n  }\n  pep_create_import_fixup(rel,s,addend_00,name,symname);\n  return;\n}\n\n" comment comment (function_definition "void make_import_fixup(arelent *rel,asection *s,char *name,char *symname)\n\n{\n  uint uVar1;\n  bfd_target *pbVar2;\n  int iVar3;\n  char *fmt;\n  reloc_howto_type *prVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  bfd *pbVar7;\n  bfd_vma addend_00;\n  undefined4 uVar8;\n  char addend [8];\n  \n  uVar6 = (undefined4)rel->address;\n  uVar5 = *(undefined4 *)((int)&rel->address + 4);\n  if (pep_dll_extra_pe_debug != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend);\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n  }\n  addend[0] = '\0';\n  addend[1] = '\0';\n  addend[2] = '\0';\n  addend[3] = '\0';\n  addend[4] = '\0';\n  addend[5] = '\0';\n  addend[6] = '\0';\n  addend[7] = '\0';\n  uVar1 = rel->howto->bitsize;\n  pbVar7 = s->owner;\n  if (uVar1 == 0x10) {\n    iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0);\n    if (iVar3 != 0) {\n      pbVar2 = s->owner->xvec;\n      if (rel->howto->pc_relative == 0) {\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }\n      else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n    pbVar7 = s->owner;\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);\n      if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  fmt = (char *)dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  addend_00 = 0;\n  einfo(fmt,pbVar7,s,uVar6,uVar5);\nLAB_000527e0:\n  uVar6 = (undefined4)addend_00;\n  if (pep_dll_extra_pe_debug != 0) {\n    uVar5 = (undefined4)rel->address;\n    uVar8 = (undefined4)rel->addend;\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5);\n    prVar4 = rel->howto;\n    if (prVar4->pc_relative != 0) {\n      printf(" pcrel",uVar6,uVar8,uVar5);\n      prVar4 = rel->howto;\n    }\n    printf(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5);\n  }\n  pep_create_import_fixup(rel,s,addend_00,name,symname);\n  return;\n}" primitive_type (function_declarator "make_import_fixup(arelent *rel,asection *s,char *name,char *symname)" identifier (parameter_list "(arelent *rel,asection *s,char *name,char *symname)" ( (parameter_declaration "arelent *rel" type_identifier (pointer_declarator "*rel" * identifier)) , (parameter_declaration "asection *s" type_identifier (pointer_declarator "*s" * identifier)) , (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) , (parameter_declaration "char *symname" primitive_type (pointer_declarator "*symname" * identifier)) ))) (compound_statement "{\n  uint uVar1;\n  bfd_target *pbVar2;\n  int iVar3;\n  char *fmt;\n  reloc_howto_type *prVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  bfd *pbVar7;\n  bfd_vma addend_00;\n  undefined4 uVar8;\n  char addend [8];\n  \n  uVar6 = (undefined4)rel->address;\n  uVar5 = *(undefined4 *)((int)&rel->address + 4);\n  if (pep_dll_extra_pe_debug != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend);\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n  }\n  addend[0] = '\0';\n  addend[1] = '\0';\n  addend[2] = '\0';\n  addend[3] = '\0';\n  addend[4] = '\0';\n  addend[5] = '\0';\n  addend[6] = '\0';\n  addend[7] = '\0';\n  uVar1 = rel->howto->bitsize;\n  pbVar7 = s->owner;\n  if (uVar1 == 0x10) {\n    iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0);\n    if (iVar3 != 0) {\n      pbVar2 = s->owner->xvec;\n      if (rel->howto->pc_relative == 0) {\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }\n      else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n    pbVar7 = s->owner;\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);\n      if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  fmt = (char *)dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  addend_00 = 0;\n  einfo(fmt,pbVar7,s,uVar6,uVar5);\nLAB_000527e0:\n  uVar6 = (undefined4)addend_00;\n  if (pep_dll_extra_pe_debug != 0) {\n    uVar5 = (undefined4)rel->address;\n    uVar8 = (undefined4)rel->addend;\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5);\n    prVar4 = rel->howto;\n    if (prVar4->pc_relative != 0) {\n      printf(" pcrel",uVar6,uVar8,uVar5);\n      prVar4 = rel->howto;\n    }\n    printf(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5);\n  }\n  pep_create_import_fixup(rel,s,addend_00,name,symname);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "bfd_target *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (declaration "reloc_howto_type *prVar4;" type_identifier (pointer_declarator "*prVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "bfd *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "bfd_vma addend_00;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "char addend [8];" primitive_type (array_declarator "addend [8]" identifier [ number_literal ]) ;) (expression_statement "uVar6 = (undefined4)rel->address;" (assignment_expression "uVar6 = (undefined4)rel->address" identifier = (cast_expression "(undefined4)rel->address" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "rel->address" identifier -> field_identifier))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)&rel->address + 4);" (assignment_expression "uVar5 = *(undefined4 *)((int)&rel->address + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&rel->address + 4)" * (cast_expression "(undefined4 *)((int)&rel->address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&rel->address + 4)" ( (binary_expression "(int)&rel->address + 4" (cast_expression "(int)&rel->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&rel->address" & (field_expression "rel->address" identifier -> field_identifier))) + number_literal) ))))) ;) (if_statement "if (pep_dll_extra_pe_debug != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend);\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n  }" if (parenthesized_expression "(pep_dll_extra_pe_debug != 0)" ( (binary_expression "pep_dll_extra_pe_debug != 0" identifier != number_literal) )) (compound_statement "{\n    printf("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend);\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n  }" { (expression_statement "printf("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend);" (call_expression "printf("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend)" identifier (argument_list "("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend)" ( (string_literal ""arelent: %s@%#lx: add=%li\n"" " string_content escape_sequence ") , (field_expression "(*rel->sym_ptr_ptr)->name" (parenthesized_expression "(*rel->sym_ptr_ptr)" ( (pointer_expression "*rel->sym_ptr_ptr" * (field_expression "rel->sym_ptr_ptr" identifier -> field_identifier)) )) -> field_identifier) , identifier , (cast_expression "(int)rel->addend" ( (type_descriptor "int" primitive_type) ) (field_expression "rel->addend" identifier -> field_identifier)) ))) ;) (expression_statement "uVar6 = (undefined4)rel->address;" (assignment_expression "uVar6 = (undefined4)rel->address" identifier = (cast_expression "(undefined4)rel->address" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "rel->address" identifier -> field_identifier))) ;) (expression_statement "uVar5 = *(undefined4 *)((int)&rel->address + 4);" (assignment_expression "uVar5 = *(undefined4 *)((int)&rel->address + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&rel->address + 4)" * (cast_expression "(undefined4 *)((int)&rel->address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&rel->address + 4)" ( (binary_expression "(int)&rel->address + 4" (cast_expression "(int)&rel->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&rel->address" & (field_expression "rel->address" identifier -> field_identifier))) + number_literal) ))))) ;) })) (expression_statement "addend[0] = '\0';" (assignment_expression "addend[0] = '\0'" (subscript_expression "addend[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addend[1] = '\0';" (assignment_expression "addend[1] = '\0'" (subscript_expression "addend[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addend[2] = '\0';" (assignment_expression "addend[2] = '\0'" (subscript_expression "addend[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addend[3] = '\0';" (assignment_expression "addend[3] = '\0'" (subscript_expression "addend[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addend[4] = '\0';" (assignment_expression "addend[4] = '\0'" (subscript_expression "addend[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addend[5] = '\0';" (assignment_expression "addend[5] = '\0'" (subscript_expression "addend[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addend[6] = '\0';" (assignment_expression "addend[6] = '\0'" (subscript_expression "addend[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "addend[7] = '\0';" (assignment_expression "addend[7] = '\0'" (subscript_expression "addend[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "uVar1 = rel->howto->bitsize;" (assignment_expression "uVar1 = rel->howto->bitsize" identifier = (field_expression "rel->howto->bitsize" (field_expression "rel->howto" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "pbVar7 = s->owner;" (assignment_expression "pbVar7 = s->owner" identifier = (field_expression "s->owner" identifier -> field_identifier)) ;) (if_statement "if (uVar1 == 0x10) {\n    iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0);\n    if (iVar3 != 0) {\n      pbVar2 = s->owner->xvec;\n      if (rel->howto->pc_relative == 0) {\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }\n      else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n    pbVar7 = s->owner;\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);\n      if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" if (parenthesized_expression "(uVar1 == 0x10)" ( (binary_expression "uVar1 == 0x10" identifier == number_literal) )) (compound_statement "{\n    iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0);\n    if (iVar3 != 0) {\n      pbVar2 = s->owner->xvec;\n      if (rel->howto->pc_relative == 0) {\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }\n      else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar6 = (undefined4)rel->address;\n    uVar5 = *(undefined4 *)((int)&rel->address + 4);\n    pbVar7 = s->owner;\n  }" { (expression_statement "iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0);" (assignment_expression "iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0)" identifier = (call_expression "bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,2,0)" identifier (argument_list "(pbVar7,s,addend,uVar6,uVar5,2,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n      pbVar2 = s->owner->xvec;\n      if (rel->howto->pc_relative == 0) {\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }\n      else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }\n      goto LAB_000527e0;\n    }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n      pbVar2 = s->owner->xvec;\n      if (rel->howto->pc_relative == 0) {\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }\n      else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }\n      goto LAB_000527e0;\n    }" { (expression_statement "pbVar2 = s->owner->xvec;" (assignment_expression "pbVar2 = s->owner->xvec" identifier = (field_expression "s->owner->xvec" (field_expression "s->owner" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (rel->howto->pc_relative == 0) {\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }\n      else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }" if (parenthesized_expression "(rel->howto->pc_relative == 0)" ( (binary_expression "rel->howto->pc_relative == 0" (field_expression "rel->howto->pc_relative" (field_expression "rel->howto" identifier -> field_identifier) -> field_identifier) == number_literal) )) (compound_statement "{\n        addend_00 = (*pbVar2->bfd_getx16)(addend);\n      }" { (expression_statement "addend_00 = (*pbVar2->bfd_getx16)(addend);" (assignment_expression "addend_00 = (*pbVar2->bfd_getx16)(addend)" identifier = (call_expression "(*pbVar2->bfd_getx16)(addend)" (parenthesized_expression "(*pbVar2->bfd_getx16)" ( (pointer_expression "*pbVar2->bfd_getx16" * (field_expression "pbVar2->bfd_getx16" identifier -> field_identifier)) )) (argument_list "(addend)" ( identifier )))) ;) }) (else_clause "else {\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }" else (compound_statement "{\n        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);\n      }" { (expression_statement "addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);" (assignment_expression "addend_00 = (*pbVar2->bfd_getx_signed_16)(addend)" identifier = (call_expression "(*pbVar2->bfd_getx_signed_16)(addend)" (parenthesized_expression "(*pbVar2->bfd_getx_signed_16)" ( (pointer_expression "*pbVar2->bfd_getx_signed_16" * (field_expression "pbVar2->bfd_getx_signed_16" identifier -> field_identifier)) )) (argument_list "(addend)" ( identifier )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) (labeled_statement "LAB_00052797:\n    uVar6 = (undefined4)rel->address;" statement_identifier : (expression_statement "uVar6 = (undefined4)rel->address;" (assignment_expression "uVar6 = (undefined4)rel->address" identifier = (cast_expression "(undefined4)rel->address" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "rel->address" identifier -> field_identifier))) ;)) (expression_statement "uVar5 = *(undefined4 *)((int)&rel->address + 4);" (assignment_expression "uVar5 = *(undefined4 *)((int)&rel->address + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&rel->address + 4)" * (cast_expression "(undefined4 *)((int)&rel->address + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&rel->address + 4)" ( (binary_expression "(int)&rel->address + 4" (cast_expression "(int)&rel->address" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&rel->address" & (field_expression "rel->address" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pbVar7 = s->owner;" (assignment_expression "pbVar7 = s->owner" identifier = (field_expression "s->owner" identifier -> field_identifier)) ;) }) (else_clause "else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);\n      if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" else (compound_statement "{\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);\n      if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" { (if_statement "if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }" if (parenthesized_expression "(0x10 < uVar1)" ( (binary_expression "0x10 < uVar1" number_literal < identifier) )) (compound_statement "{\n      if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }" { (if_statement "if (uVar1 == 0x20) {\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }" if (parenthesized_expression "(uVar1 == 0x20)" ( (binary_expression "uVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);\n        if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }\n      }" { (expression_statement "iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0);" (assignment_expression "iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0)" identifier = (call_expression "bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,4,0)" identifier (argument_list "(pbVar7,s,addend,uVar6,uVar5,4,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          pbVar2 = s->owner->xvec;\n          if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }\n          goto LAB_000527e0;\n        }" { (expression_statement "pbVar2 = s->owner->xvec;" (assignment_expression "pbVar2 = s->owner->xvec" identifier = (field_expression "s->owner->xvec" (field_expression "s->owner" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (rel->howto->pc_relative == 0) {\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }\n          else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }" if (parenthesized_expression "(rel->howto->pc_relative == 0)" ( (binary_expression "rel->howto->pc_relative == 0" (field_expression "rel->howto->pc_relative" (field_expression "rel->howto" identifier -> field_identifier) -> field_identifier) == number_literal) )) (compound_statement "{\n            addend_00 = (*pbVar2->bfd_getx32)(addend);\n          }" { (expression_statement "addend_00 = (*pbVar2->bfd_getx32)(addend);" (assignment_expression "addend_00 = (*pbVar2->bfd_getx32)(addend)" identifier = (call_expression "(*pbVar2->bfd_getx32)(addend)" (parenthesized_expression "(*pbVar2->bfd_getx32)" ( (pointer_expression "*pbVar2->bfd_getx32" * (field_expression "pbVar2->bfd_getx32" identifier -> field_identifier)) )) (argument_list "(addend)" ( identifier )))) ;) }) (else_clause "else {\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }" else (compound_statement "{\n            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);\n          }" { (expression_statement "addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);" (assignment_expression "addend_00 = (*pbVar2->bfd_getx_signed_32)(addend)" identifier = (call_expression "(*pbVar2->bfd_getx_signed_32)(addend)" (parenthesized_expression "(*pbVar2->bfd_getx_signed_32)" ( (pointer_expression "*pbVar2->bfd_getx_signed_32" * (field_expression "pbVar2->bfd_getx_signed_32" identifier -> field_identifier)) )) (argument_list "(addend)" ( identifier )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }" else (compound_statement "{\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);\n        if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }\n      }" { (if_statement "if (uVar1 != 0x40) goto LAB_000527a7;" if (parenthesized_expression "(uVar1 != 0x40)" ( (binary_expression "uVar1 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_000527a7;" goto statement_identifier ;)) (expression_statement "iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0);" (assignment_expression "iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0)" identifier = (call_expression "bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,8,0)" identifier (argument_list "(pbVar7,s,addend,uVar6,uVar5,8,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);\n          goto LAB_000527e0;\n        }" { (expression_statement "addend_00 = (*s->owner->xvec->bfd_getx64)(addend);" (assignment_expression "addend_00 = (*s->owner->xvec->bfd_getx64)(addend)" identifier = (call_expression "(*s->owner->xvec->bfd_getx64)(addend)" (parenthesized_expression "(*s->owner->xvec->bfd_getx64)" ( (pointer_expression "*s->owner->xvec->bfd_getx64" * (field_expression "s->owner->xvec->bfd_getx64" (field_expression "s->owner->xvec" (field_expression "s->owner" identifier -> field_identifier) -> field_identifier) -> field_identifier)) )) (argument_list "(addend)" ( identifier )))) ;) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00052797;" goto statement_identifier ;) })) (if_statement "if (uVar1 == 8) {\n      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);\n      if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }" if (parenthesized_expression "(uVar1 == 8)" ( (binary_expression "uVar1 == 8" identifier == number_literal) )) (compound_statement "{\n      iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);\n      if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }" { (expression_statement "iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0);" (assignment_expression "iVar3 = bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0)" identifier = (call_expression "bfd_get_section_contents(pbVar7,s,addend,uVar6,uVar5,1,0)" identifier (argument_list "(pbVar7,s,addend,uVar6,uVar5,1,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar3 != 0) {\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (compound_statement "{\n        if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }" { (if_statement "if (rel->howto->pc_relative == 0) {\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }\n        else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }" if (parenthesized_expression "(rel->howto->pc_relative == 0)" ( (binary_expression "rel->howto->pc_relative == 0" (field_expression "rel->howto->pc_relative" (field_expression "rel->howto" identifier -> field_identifier) -> field_identifier) == number_literal) )) (compound_statement "{\n          addend_00 = (bfd_vma)(addend._0_4_ & 0xff);\n        }" { (expression_statement "addend_00 = (bfd_vma)(addend._0_4_ & 0xff);" (assignment_expression "addend_00 = (bfd_vma)(addend._0_4_ & 0xff)" identifier = (call_expression "(bfd_vma)(addend._0_4_ & 0xff)" (parenthesized_expression "(bfd_vma)" ( identifier )) (argument_list "(addend._0_4_ & 0xff)" ( (binary_expression "addend._0_4_ & 0xff" (field_expression "addend._0_4_" identifier . field_identifier) & number_literal) )))) ;) }) (else_clause "else {\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }" else (compound_statement "{\n          addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);\n        }" { (expression_statement "addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80);" (assignment_expression "addend_00 = (bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80)" identifier = (call_expression "(bfd_vma)(int)((byte)(addend[0] + 0x80) - 0x80)" (call_expression "(bfd_vma)(int)" (parenthesized_expression "(bfd_vma)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "((byte)(addend[0] + 0x80) - 0x80)" ( (binary_expression "(byte)(addend[0] + 0x80) - 0x80" (call_expression "(byte)(addend[0] + 0x80)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(addend[0] + 0x80)" ( (binary_expression "addend[0] + 0x80" (subscript_expression "addend[0]" identifier [ number_literal ]) + number_literal) ))) - number_literal) )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00052797;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000527a7:\n  fmt = (char *)dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);" statement_identifier : (expression_statement "fmt = (char *)dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);" (assignment_expression "fmt = (char *)dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" identifier (argument_list "(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" ( number_literal , (string_literal ""%P: %C: cannot get section contents - auto-import exception\n"" " string_content escape_sequence ") , number_literal ))))) ;)) (expression_statement "addend_00 = 0;" (assignment_expression "addend_00 = 0" identifier = number_literal) ;) (expression_statement "einfo(fmt,pbVar7,s,uVar6,uVar5);" (call_expression "einfo(fmt,pbVar7,s,uVar6,uVar5)" identifier (argument_list "(fmt,pbVar7,s,uVar6,uVar5)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000527e0:\n  uVar6 = (undefined4)addend_00;" statement_identifier : (expression_statement "uVar6 = (undefined4)addend_00;" (assignment_expression "uVar6 = (undefined4)addend_00" identifier = (cast_expression "(undefined4)addend_00" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;)) (if_statement "if (pep_dll_extra_pe_debug != 0) {\n    uVar5 = (undefined4)rel->address;\n    uVar8 = (undefined4)rel->addend;\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5);\n    prVar4 = rel->howto;\n    if (prVar4->pc_relative != 0) {\n      printf(" pcrel",uVar6,uVar8,uVar5);\n      prVar4 = rel->howto;\n    }\n    printf(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5);\n  }" if (parenthesized_expression "(pep_dll_extra_pe_debug != 0)" ( (binary_expression "pep_dll_extra_pe_debug != 0" identifier != number_literal) )) (compound_statement "{\n    uVar5 = (undefined4)rel->address;\n    uVar8 = (undefined4)rel->addend;\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5);\n    prVar4 = rel->howto;\n    if (prVar4->pc_relative != 0) {\n      printf(" pcrel",uVar6,uVar8,uVar5);\n      prVar4 = rel->howto;\n    }\n    printf(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5);\n  }" { (expression_statement "uVar5 = (undefined4)rel->address;" (assignment_expression "uVar5 = (undefined4)rel->address" identifier = (cast_expression "(undefined4)rel->address" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "rel->address" identifier -> field_identifier))) ;) (expression_statement "uVar8 = (undefined4)rel->addend;" (assignment_expression "uVar8 = (undefined4)rel->addend" identifier = (cast_expression "(undefined4)rel->addend" ( (type_descriptor "undefined4" type_identifier) ) (field_expression "rel->addend" identifier -> field_identifier))) ;) (expression_statement "printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5);" (call_expression "printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5)" identifier (argument_list "("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5)" ( (string_literal ""import of 0x%lx(0x%lx) sec_addr=0x%lx"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "prVar4 = rel->howto;" (assignment_expression "prVar4 = rel->howto" identifier = (field_expression "rel->howto" identifier -> field_identifier)) ;) (if_statement "if (prVar4->pc_relative != 0) {\n      printf(" pcrel",uVar6,uVar8,uVar5);\n      prVar4 = rel->howto;\n    }" if (parenthesized_expression "(prVar4->pc_relative != 0)" ( (binary_expression "prVar4->pc_relative != 0" (field_expression "prVar4->pc_relative" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      printf(" pcrel",uVar6,uVar8,uVar5);\n      prVar4 = rel->howto;\n    }" { (expression_statement "printf(" pcrel",uVar6,uVar8,uVar5);" (call_expression "printf(" pcrel",uVar6,uVar8,uVar5)" identifier (argument_list "(" pcrel",uVar6,uVar8,uVar5)" ( (string_literal "" pcrel"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "prVar4 = rel->howto;" (assignment_expression "prVar4 = rel->howto" identifier = (field_expression "rel->howto" identifier -> field_identifier)) ;) })) (expression_statement "printf(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5);" (call_expression "printf(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5)" identifier (argument_list "(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5)" ( (string_literal "" %d bit rel.\n"" " string_content escape_sequence ") , (field_expression "prVar4->bitsize" identifier -> field_identifier) , identifier , identifier ))) ;) })) (expression_statement "pep_create_import_fixup(rel,s,addend_00,name,symname);" (call_expression "pep_create_import_fixup(rel,s,addend_00,name,symname)" identifier (argument_list "(rel,s,addend_00,name,symname)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  ulonglong uVar7;\n  uint local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x52689;\n  uVar5 = param_1[1];\n  uVar4 = param_1[2];\n  if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }\n  local_24[0] = 0;\n  local_24[1] = 0;\n  uVar1 = *(uint *)(param_1[5] + 0xc);\n  uVar6 = *(undefined4 *)(param_2 + 0xac);\n  if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  uVar7 = 0;\n  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);\nLAB_000527e0:\n  uVar5 = (undefined4)uVar7;\n  if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }\n  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);\n  return;\n}\n\n" (function_definition "void FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  ulonglong uVar7;\n  uint local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x52689;\n  uVar5 = param_1[1];\n  uVar4 = param_1[2];\n  if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }\n  local_24[0] = 0;\n  local_24[1] = 0;\n  uVar1 = *(uint *)(param_1[5] + 0xc);\n  uVar6 = *(undefined4 *)(param_2 + 0xac);\n  if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  uVar7 = 0;\n  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);\nLAB_000527e0:\n  uVar5 = (undefined4)uVar7;\n  if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }\n  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);\n  return;\n}" primitive_type (function_declarator "FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  ulonglong uVar7;\n  uint local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x52689;\n  uVar5 = param_1[1];\n  uVar4 = param_1[2];\n  if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }\n  local_24[0] = 0;\n  local_24[1] = 0;\n  uVar1 = *(uint *)(param_1[5] + 0xc);\n  uVar6 = *(undefined4 *)(param_2 + 0xac);\n  if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  uVar7 = 0;\n  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);\nLAB_000527e0:\n  uVar5 = (undefined4)uVar7;\n  if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }\n  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "ulonglong uVar7;" type_identifier identifier ;) (declaration "uint local_24 [4];" type_identifier (array_declarator "local_24 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x52689;" (assignment_expression "uStack_14 = 0x52689" identifier = number_literal) ;) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (if_statement "if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }" if (parenthesized_expression "(DAT_001d1144 != 0)" ( (binary_expression "DAT_001d1144 != 0" identifier != number_literal) )) (compound_statement "{\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }" { (expression_statement "printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);" (call_expression "printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3])" identifier (argument_list "("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3])" ( (string_literal ""arelent: %s@%#lx: add=%li\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(*(int *)*param_1 + 4)" * (cast_expression "(undefined4 *)(*(int *)*param_1 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)*param_1 + 4)" ( (binary_expression "*(int *)*param_1 + 4" (pointer_expression "*(int *)*param_1" * (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) + number_literal) )))) , identifier , (subscript_expression "param_1[3]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) })) (expression_statement "local_24[0] = 0;" (assignment_expression "local_24[0] = 0" (subscript_expression "local_24[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_24[1] = 0;" (assignment_expression "local_24[1] = 0" (subscript_expression "local_24[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar1 = *(uint *)(param_1[5] + 0xc);" (assignment_expression "uVar1 = *(uint *)(param_1[5] + 0xc)" identifier = (pointer_expression "*(uint *)(param_1[5] + 0xc)" * (cast_expression "(uint *)(param_1[5] + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[5] + 0xc)" ( (binary_expression "param_1[5] + 0xc" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar6 = *(undefined4 *)(param_2 + 0xac);" (assignment_expression "uVar6 = *(undefined4 *)(param_2 + 0xac)" identifier = (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) ))))) ;) (if_statement "if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" if (parenthesized_expression "(uVar1 == 0x10)" ( (binary_expression "uVar1 == 0x10" identifier == number_literal) )) (compound_statement "{\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }" { (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0)" identifier = (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0)" identifier (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,2,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }" { (expression_statement "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" * (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" ( (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" * (cast_expression "(int *)(param_2 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" if (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" ( (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" * (cast_expression "(int *)(param_1[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[5] + 0x10)" ( (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }" { (expression_statement "uVar7 = (**(code **)(iVar2 + 0x34))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x34))(local_24)" identifier = (call_expression "(**(code **)(iVar2 + 0x34))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x34))" ( (pointer_expression "**(code **)(iVar2 + 0x34)" * (pointer_expression "*(code **)(iVar2 + 0x34)" * (cast_expression "(code **)(iVar2 + 0x34)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x34)" ( (binary_expression "iVar2 + 0x34" identifier + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) }) (else_clause "else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" else (compound_statement "{\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" { (expression_statement "uVar7 = (**(code **)(iVar2 + 0x38))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x38))(local_24)" identifier = (call_expression "(**(code **)(iVar2 + 0x38))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x38))" ( (pointer_expression "**(code **)(iVar2 + 0x38)" * (pointer_expression "*(code **)(iVar2 + 0x38)" * (cast_expression "(code **)(iVar2 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x38)" ( (binary_expression "iVar2 + 0x38" identifier + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) (labeled_statement "LAB_00052797:\n    uVar5 = param_1[1];" statement_identifier : (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = *(undefined4 *)(param_2 + 0xac);" (assignment_expression "uVar6 = *(undefined4 *)(param_2 + 0xac)" identifier = (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) ))))) ;) }) (else_clause "else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" else (compound_statement "{\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" { (if_statement "if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }" if (parenthesized_expression "(0x10 < uVar1)" ( (binary_expression "0x10 < uVar1" number_literal < identifier) )) (compound_statement "{\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }" { (if_statement "if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" if (parenthesized_expression "(uVar1 == 0x20)" ( (binary_expression "uVar1 == 0x20" identifier == number_literal) )) (compound_statement "{\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }" { (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0)" identifier = (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0)" identifier (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,4,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }" { (expression_statement "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" * (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" ( (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" * (cast_expression "(int *)(param_2 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" if (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" ( (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" * (cast_expression "(int *)(param_1[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[5] + 0x10)" ( (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }" { (expression_statement "uVar7 = (**(code **)(iVar2 + 0x28))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x28))(local_24)" identifier = (call_expression "(**(code **)(iVar2 + 0x28))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x28))" ( (pointer_expression "**(code **)(iVar2 + 0x28)" * (pointer_expression "*(code **)(iVar2 + 0x28)" * (cast_expression "(code **)(iVar2 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) }) (else_clause "else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" else (compound_statement "{\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" { (expression_statement "uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x2c))(local_24)" identifier = (call_expression "(**(code **)(iVar2 + 0x2c))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x2c))" ( (pointer_expression "**(code **)(iVar2 + 0x2c)" * (pointer_expression "*(code **)(iVar2 + 0x2c)" * (cast_expression "(code **)(iVar2 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 0x2c)" ( (binary_expression "iVar2 + 0x2c" identifier + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) }) (else_clause "else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" else (compound_statement "{\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" { (if_statement "if (uVar1 != 0x40) goto LAB_000527a7;" if (parenthesized_expression "(uVar1 != 0x40)" ( (binary_expression "uVar1 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_000527a7;" goto statement_identifier ;)) (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0)" identifier = (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0)" identifier (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,8,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }" { (expression_statement "uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);" (assignment_expression "uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24)" identifier = (call_expression "(**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))" ( (pointer_expression "**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" * (pointer_expression "*(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" * (cast_expression "(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" ( (binary_expression "*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c" (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" * (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" ( (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" * (cast_expression "(int *)(param_2 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0xac)" ( (binary_expression "param_2 + 0xac" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) )) (argument_list "(local_24)" ( identifier )))) ;) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) }))) (goto_statement "goto LAB_00052797;" goto statement_identifier ;) })) (if_statement "if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }" if (parenthesized_expression "(uVar1 == 8)" ( (binary_expression "uVar1 == 8" identifier == number_literal) )) (compound_statement "{\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }" { (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0)" identifier = (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0)" identifier (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,1,0)" ( identifier , identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }" { (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" if (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" ( (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" * (cast_expression "(int *)(param_1[5] + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1[5] + 0x10)" ( (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal) )))) == number_literal) )) (compound_statement "{\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }" { (expression_statement "uVar7 = (ulonglong)(local_24[0] & 0xff);" (assignment_expression "uVar7 = (ulonglong)(local_24[0] & 0xff)" identifier = (call_expression "(ulonglong)(local_24[0] & 0xff)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(local_24[0] & 0xff)" ( (binary_expression "local_24[0] & 0xff" (subscript_expression "local_24[0]" identifier [ number_literal ]) & number_literal) )))) ;) }) (else_clause "else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" else (compound_statement "{\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" { (expression_statement "uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);" (assignment_expression "uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80)" identifier = (call_expression "(ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80)" (call_expression "(ulonglong)(int)" (parenthesized_expression "(ulonglong)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "((byte)((char)local_24[0] + 0x80) - 0x80)" ( (binary_expression "(byte)((char)local_24[0] + 0x80) - 0x80" (call_expression "(byte)((char)local_24[0] + 0x80)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "((char)local_24[0] + 0x80)" ( (binary_expression "(char)local_24[0] + 0x80" (cast_expression "(char)local_24[0]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_24[0]" identifier [ number_literal ])) + number_literal) ))) - number_literal) )))) ;) }))) (goto_statement "goto LAB_000527e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_00052797;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);" statement_identifier : (expression_statement "uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);" (assignment_expression "uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" identifier = (call_expression "dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" identifier (argument_list "(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" ( number_literal , (string_literal ""%P: %C: cannot get section contents - auto-import exception\n"" " string_content escape_sequence ") , number_literal )))) ;)) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);" (call_expression "FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4)" identifier (argument_list "(uVar3,uVar6,param_2,uVar5,uVar4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000527e0:\n  uVar5 = (undefined4)uVar7;" statement_identifier : (expression_statement "uVar5 = (undefined4)uVar7;" (assignment_expression "uVar5 = (undefined4)uVar7" identifier = (cast_expression "(undefined4)uVar7" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;)) (if_statement "if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }" if (parenthesized_expression "(DAT_001d1144 != 0)" ( (binary_expression "DAT_001d1144 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }" { (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar6 = param_1[3];" (assignment_expression "uVar6 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);" (call_expression "printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4)" identifier (argument_list "("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4)" ( (string_literal ""import of 0x%lx(0x%lx) sec_addr=0x%lx"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }" if (parenthesized_expression "(*(int *)(iVar2 + 0x10) != 0)" ( (binary_expression "*(int *)(iVar2 + 0x10) != 0" (pointer_expression "*(int *)(iVar2 + 0x10)" * (cast_expression "(int *)(iVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x10)" ( (binary_expression "iVar2 + 0x10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }" { (expression_statement "printf(" pcrel",uVar5,uVar6,uVar4);" (call_expression "printf(" pcrel",uVar5,uVar6,uVar4)" identifier (argument_list "(" pcrel",uVar5,uVar6,uVar4)" ( (string_literal "" pcrel"" " string_content ") , identifier , identifier , identifier ))) ;) (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) })) (expression_statement "printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);" (call_expression "printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4)" identifier (argument_list "(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4)" ( (string_literal "" %d bit rel.\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined4 *)(iVar2 + 0xc)" * (cast_expression "(undefined4 *)(iVar2 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) , identifier , identifier ))) ;) })) (expression_statement "FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);" (call_expression "FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4)" identifier (argument_list "(param_1,param_2,uVar7,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) + LIT) )))) , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (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 IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (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 IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (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 IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (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 IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (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 IDENT + LIT) )))) + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (goto_statement goto statement_identifier ;) })) }))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + LIT) ))) - LIT) )))) ;) }))) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT )))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_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 { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  ulonglong uVar7;\n  uint local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x52689;\n  uVar5 = param_1[1];\n  uVar4 = param_1[2];\n  if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }\n  local_24[0] = 0;\n  local_24[1] = 0;\n  uVar1 = *(uint *)(param_1[5] + 0xc);\n  uVar6 = *(undefined4 *)(param_2 + 0xac);\n  if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  uVar7 = 0;\n  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);\nLAB_000527e0:\n  uVar5 = (undefined4)uVar7;\n  if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }\n  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00052680(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)" (identifier "FUN_00052680") (parameter_list "(undefined4 *param_1,int param_2,undefined4 param_3,undefined4 param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined4 uVar4;\n  undefined4 uVar5;\n  undefined4 uVar6;\n  ulonglong uVar7;\n  uint local_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x52689;\n  uVar5 = param_1[1];\n  uVar4 = param_1[2];\n  if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }\n  local_24[0] = 0;\n  local_24[1] = 0;\n  uVar1 = *(uint *)(param_1[5] + 0xc);\n  uVar6 = *(undefined4 *)(param_2 + 0xac);\n  if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }\nLAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);\n  uVar7 = 0;\n  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);\nLAB_000527e0:\n  uVar5 = (undefined4)uVar7;\n  if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }\n  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "ulonglong uVar7;" (type_identifier "ulonglong") (identifier "uVar7") (; ";")) (declaration "uint local_24 [4];" (type_identifier "uint") (array_declarator "local_24 [4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x52689;" (assignment_expression "uStack_14 = 0x52689" (identifier "uStack_14") (= "=") (number_literal "0x52689")) (; ";")) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" (identifier "uVar5") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" (identifier "uVar4") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (DAT_001d1144 != 0) {\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }" (if "if") (parenthesized_expression "(DAT_001d1144 != 0)" (( "(") (binary_expression "DAT_001d1144 != 0" (identifier "DAT_001d1144") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n  }" ({ "{") (expression_statement "printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);" (call_expression "printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3])" (identifier "printf") (argument_list "("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3])" (( "(") (string_literal ""arelent: %s@%#lx: add=%li\n"" (" """) (string_content "arelent: %s@%#lx: add=%li") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined4 *)(*(int *)*param_1 + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)*param_1 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)*param_1 + 4)" (( "(") (binary_expression "*(int *)*param_1 + 4" (pointer_expression "*(int *)*param_1" (* "*") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (+ "+") (number_literal "4")) () ")")))) (, ",") (identifier "uVar5") (, ",") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" (identifier "uVar5") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" (identifier "uVar4") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (expression_statement "local_24[0] = 0;" (assignment_expression "local_24[0] = 0" (subscript_expression "local_24[0]" (identifier "local_24") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_24[1] = 0;" (assignment_expression "local_24[1] = 0" (subscript_expression "local_24[1]" (identifier "local_24") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar1 = *(uint *)(param_1[5] + 0xc);" (assignment_expression "uVar1 = *(uint *)(param_1[5] + 0xc)" (identifier "uVar1") (= "=") (pointer_expression "*(uint *)(param_1[5] + 0xc)" (* "*") (cast_expression "(uint *)(param_1[5] + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[5] + 0xc)" (( "(") (binary_expression "param_1[5] + 0xc" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(param_2 + 0xac);" (assignment_expression "uVar6 = *(undefined4 *)(param_2 + 0xac)" (identifier "uVar6") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (uVar1 == 0x10) {\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }\n  else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" (if "if") (parenthesized_expression "(uVar1 == 0x10)" (( "(") (binary_expression "uVar1 == 0x10" (identifier "uVar1") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);\n    if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }\nLAB_00052797:\n    uVar5 = param_1[1];\n    uVar4 = param_1[2];\n    uVar6 = *(undefined4 *)(param_2 + 0xac);\n  }" ({ "{") (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0)" (identifier "iVar2") (= "=") (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0)" (identifier "bfd_get_section_contents") (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,2,0)" (( "(") (identifier "uVar6") (, ",") (identifier "param_2") (, ",") (identifier "local_24") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (number_literal "2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n      if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }\n      goto LAB_000527e0;\n    }" ({ "{") (expression_statement "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" (( "(") (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" (* "*") (cast_expression "(int *)(param_2 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xac)" (( "(") (binary_expression "param_2 + 0xac" (identifier "param_2") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }\n      else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" (( "(") (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" (* "*") (cast_expression "(int *)(param_1[5] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[5] + 0x10)" (( "(") (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);\n      }" ({ "{") (expression_statement "uVar7 = (**(code **)(iVar2 + 0x34))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x34))(local_24)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(iVar2 + 0x34))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x34))" (( "(") (pointer_expression "**(code **)(iVar2 + 0x34)" (* "*") (pointer_expression "*(code **)(iVar2 + 0x34)" (* "*") (cast_expression "(code **)(iVar2 + 0x34)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x34)" (( "(") (binary_expression "iVar2 + 0x34" (identifier "iVar2") (+ "+") (number_literal "0x34")) () ")"))))) () ")")) (argument_list "(local_24)" (( "(") (identifier "local_24") () ")")))) (; ";")) (} "}")) (else_clause "else {\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" (else "else") (compound_statement "{\n        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);\n      }" ({ "{") (expression_statement "uVar7 = (**(code **)(iVar2 + 0x38))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x38))(local_24)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(iVar2 + 0x38))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x38))" (( "(") (pointer_expression "**(code **)(iVar2 + 0x38)" (* "*") (pointer_expression "*(code **)(iVar2 + 0x38)" (* "*") (cast_expression "(code **)(iVar2 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x38)" (( "(") (binary_expression "iVar2 + 0x38" (identifier "iVar2") (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "(local_24)" (( "(") (identifier "local_24") () ")")))) (; ";")) (} "}")))) (goto_statement "goto LAB_000527e0;" (goto "goto") (statement_identifier "LAB_000527e0") (; ";")) (} "}"))) (labeled_statement "LAB_00052797:\n    uVar5 = param_1[1];" (statement_identifier "LAB_00052797") (: ":") (expression_statement "uVar5 = param_1[1];" (assignment_expression "uVar5 = param_1[1]" (identifier "uVar5") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "uVar4 = param_1[2];" (assignment_expression "uVar4 = param_1[2]" (identifier "uVar4") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar6 = *(undefined4 *)(param_2 + 0xac);" (assignment_expression "uVar6 = *(undefined4 *)(param_2 + 0xac)" (identifier "uVar6") (= "=") (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")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" (else "else") (compound_statement "{\n    if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }\n    if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }\n  }" ({ "{") (if_statement "if (0x10 < uVar1) {\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }" (if "if") (parenthesized_expression "(0x10 < uVar1)" (( "(") (binary_expression "0x10 < uVar1" (number_literal "0x10") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n      if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }\n      goto LAB_00052797;\n    }" ({ "{") (if_statement "if (uVar1 == 0x20) {\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }\n      else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" (if "if") (parenthesized_expression "(uVar1 == 0x20)" (( "(") (binary_expression "uVar1 == 0x20" (identifier "uVar1") (== "==") (number_literal "0x20")) () ")")) (compound_statement "{\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);\n        if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }\n      }" ({ "{") (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0)" (identifier "iVar2") (= "=") (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0)" (identifier "bfd_get_section_contents") (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,4,0)" (( "(") (identifier "uVar6") (, ",") (identifier "param_2") (, ",") (identifier "local_24") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);\n          if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }\n          goto LAB_000527e0;\n        }" ({ "{") (expression_statement "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);" (assignment_expression "iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" (( "(") (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" (* "*") (cast_expression "(int *)(param_2 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xac)" (( "(") (binary_expression "param_2 + 0xac" (identifier "param_2") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }\n          else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" (if "if") (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" (( "(") (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" (* "*") (cast_expression "(int *)(param_1[5] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[5] + 0x10)" (( "(") (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);\n          }" ({ "{") (expression_statement "uVar7 = (**(code **)(iVar2 + 0x28))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x28))(local_24)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(iVar2 + 0x28))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x28))" (( "(") (pointer_expression "**(code **)(iVar2 + 0x28)" (* "*") (pointer_expression "*(code **)(iVar2 + 0x28)" (* "*") (cast_expression "(code **)(iVar2 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(local_24)" (( "(") (identifier "local_24") () ")")))) (; ";")) (} "}")) (else_clause "else {\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" (else "else") (compound_statement "{\n            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);\n          }" ({ "{") (expression_statement "uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);" (assignment_expression "uVar7 = (**(code **)(iVar2 + 0x2c))(local_24)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(iVar2 + 0x2c))(local_24)" (parenthesized_expression "(**(code **)(iVar2 + 0x2c))" (( "(") (pointer_expression "**(code **)(iVar2 + 0x2c)" (* "*") (pointer_expression "*(code **)(iVar2 + 0x2c)" (* "*") (cast_expression "(code **)(iVar2 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 0x2c)" (( "(") (binary_expression "iVar2 + 0x2c" (identifier "iVar2") (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (argument_list "(local_24)" (( "(") (identifier "local_24") () ")")))) (; ";")) (} "}")))) (goto_statement "goto LAB_000527e0;" (goto "goto") (statement_identifier "LAB_000527e0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" (else "else") (compound_statement "{\n        if (uVar1 != 0x40) goto LAB_000527a7;\n        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);\n        if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }\n      }" ({ "{") (if_statement "if (uVar1 != 0x40) goto LAB_000527a7;" (if "if") (parenthesized_expression "(uVar1 != 0x40)" (( "(") (binary_expression "uVar1 != 0x40" (identifier "uVar1") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_000527a7;" (goto "goto") (statement_identifier "LAB_000527a7") (; ";"))) (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0)" (identifier "iVar2") (= "=") (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0)" (identifier "bfd_get_section_contents") (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,8,0)" (( "(") (identifier "uVar6") (, ",") (identifier "param_2") (, ",") (identifier "local_24") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (number_literal "8") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);\n          goto LAB_000527e0;\n        }" ({ "{") (expression_statement "uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);" (assignment_expression "uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24)" (parenthesized_expression "(**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))" (( "(") (pointer_expression "**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" (* "*") (pointer_expression "*(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" (* "*") (cast_expression "(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c)" (( "(") (binary_expression "*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c" (pointer_expression "*(int *)(*(int *)(param_2 + 0xac) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_2 + 0xac) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_2 + 0xac) + 4)" (( "(") (binary_expression "*(int *)(param_2 + 0xac) + 4" (pointer_expression "*(int *)(param_2 + 0xac)" (* "*") (cast_expression "(int *)(param_2 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0xac)" (( "(") (binary_expression "param_2 + 0xac" (identifier "param_2") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "(local_24)" (( "(") (identifier "local_24") () ")")))) (; ";")) (goto_statement "goto LAB_000527e0;" (goto "goto") (statement_identifier "LAB_000527e0") (; ";")) (} "}"))) (} "}")))) (goto_statement "goto LAB_00052797;" (goto "goto") (statement_identifier "LAB_00052797") (; ";")) (} "}"))) (if_statement "if (uVar1 == 8) {\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }" (if "if") (parenthesized_expression "(uVar1 == 8)" (( "(") (binary_expression "uVar1 == 8" (identifier "uVar1") (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);\n      if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }\n      goto LAB_00052797;\n    }" ({ "{") (expression_statement "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);" (assignment_expression "iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0)" (identifier "iVar2") (= "=") (call_expression "bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0)" (identifier "bfd_get_section_contents") (argument_list "(uVar6,param_2,local_24,uVar5,uVar4,1,0)" (( "(") (identifier "uVar6") (, ",") (identifier "param_2") (, ",") (identifier "local_24") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }\n        goto LAB_000527e0;\n      }" ({ "{") (if_statement "if (*(int *)(param_1[5] + 0x10) == 0) {\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }\n        else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1[5] + 0x10) == 0)" (( "(") (binary_expression "*(int *)(param_1[5] + 0x10) == 0" (pointer_expression "*(int *)(param_1[5] + 0x10)" (* "*") (cast_expression "(int *)(param_1[5] + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1[5] + 0x10)" (( "(") (binary_expression "param_1[5] + 0x10" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar7 = (ulonglong)(local_24[0] & 0xff);\n        }" ({ "{") (expression_statement "uVar7 = (ulonglong)(local_24[0] & 0xff);" (assignment_expression "uVar7 = (ulonglong)(local_24[0] & 0xff)" (identifier "uVar7") (= "=") (call_expression "(ulonglong)(local_24[0] & 0xff)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(local_24[0] & 0xff)" (( "(") (binary_expression "local_24[0] & 0xff" (subscript_expression "local_24[0]" (identifier "local_24") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xff")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" (else "else") (compound_statement "{\n          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);\n        }" ({ "{") (expression_statement "uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);" (assignment_expression "uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80)" (identifier "uVar7") (= "=") (call_expression "(ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80)" (call_expression "(ulonglong)(int)" (parenthesized_expression "(ulonglong)" (( "(") (identifier "ulonglong") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "((byte)((char)local_24[0] + 0x80) - 0x80)" (( "(") (binary_expression "(byte)((char)local_24[0] + 0x80) - 0x80" (call_expression "(byte)((char)local_24[0] + 0x80)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "((char)local_24[0] + 0x80)" (( "(") (binary_expression "(char)local_24[0] + 0x80" (cast_expression "(char)local_24[0]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_24[0]" (identifier "local_24") ([ "[") (number_literal "0") (] "]"))) (+ "+") (number_literal "0x80")) () ")"))) (- "-") (number_literal "0x80")) () ")")))) (; ";")) (} "}")))) (goto_statement "goto LAB_000527e0;" (goto "goto") (statement_identifier "LAB_000527e0") (; ";")) (} "}"))) (goto_statement "goto LAB_00052797;" (goto "goto") (statement_identifier "LAB_00052797") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_000527a7:\n  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);" (statement_identifier "LAB_000527a7") (: ":") (expression_statement "uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);" (assignment_expression "uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" (identifier "uVar3") (= "=") (call_expression "dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" (identifier "dcgettext") (argument_list "(0,"%P: %C: cannot get section contents - auto-import exception\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%P: %C: cannot get section contents - auto-import exception\n"" (" """) (string_content "%P: %C: cannot get section contents - auto-import exception") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);" (call_expression "FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4)" (identifier "FUN_00034d20") (argument_list "(uVar3,uVar6,param_2,uVar5,uVar4)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar6") (, ",") (identifier "param_2") (, ",") (identifier "uVar5") (, ",") (identifier "uVar4") () ")"))) (; ";")) (labeled_statement "LAB_000527e0:\n  uVar5 = (undefined4)uVar7;" (statement_identifier "LAB_000527e0") (: ":") (expression_statement "uVar5 = (undefined4)uVar7;" (assignment_expression "uVar5 = (undefined4)uVar7" (identifier "uVar5") (= "=") (cast_expression "(undefined4)uVar7" (( "(") (type_descriptor "undefined4" (type_identifier "undefined4")) () ")") (identifier "uVar7"))) (; ";"))) (if_statement "if (DAT_001d1144 != 0) {\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }" (if "if") (parenthesized_expression "(DAT_001d1144 != 0)" (( "(") (binary_expression "DAT_001d1144 != 0" (identifier "DAT_001d1144") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar4 = param_1[1];\n    uVar6 = param_1[3];\n    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);\n    iVar2 = param_1[5];\n    if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }\n    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);\n  }" ({ "{") (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" (identifier "uVar4") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar6 = param_1[3];" (assignment_expression "uVar6 = param_1[3]" (identifier "uVar6") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);" (call_expression "printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4)" (identifier "printf") (argument_list "("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4)" (( "(") (string_literal ""import of 0x%lx(0x%lx) sec_addr=0x%lx"" (" """) (string_content "import of 0x%lx(0x%lx) sec_addr=0x%lx") (" """)) (, ",") (identifier "uVar5") (, ",") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" (identifier "iVar2") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (if_statement "if (*(int *)(iVar2 + 0x10) != 0) {\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar2 + 0x10) != 0)" (( "(") (binary_expression "*(int *)(iVar2 + 0x10) != 0" (pointer_expression "*(int *)(iVar2 + 0x10)" (* "*") (cast_expression "(int *)(iVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x10)" (( "(") (binary_expression "iVar2 + 0x10" (identifier "iVar2") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      printf(" pcrel",uVar5,uVar6,uVar4);\n      iVar2 = param_1[5];\n    }" ({ "{") (expression_statement "printf(" pcrel",uVar5,uVar6,uVar4);" (call_expression "printf(" pcrel",uVar5,uVar6,uVar4)" (identifier "printf") (argument_list "(" pcrel",uVar5,uVar6,uVar4)" (( "(") (string_literal "" pcrel"" (" """) (string_content " pcrel") (" """)) (, ",") (identifier "uVar5") (, ",") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "iVar2 = param_1[5];" (assignment_expression "iVar2 = param_1[5]" (identifier "iVar2") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (} "}"))) (expression_statement "printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);" (call_expression "printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4)" (identifier "printf") (argument_list "(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4)" (( "(") (string_literal "" %d bit rel.\n"" (" """) (string_content " %d bit rel.") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined4 *)(iVar2 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar2 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0xc)" (( "(") (binary_expression "iVar2 + 0xc" (identifier "iVar2") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "uVar6") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);" (call_expression "FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4)" (identifier "FUN_0005d9d0") (argument_list "(param_1,param_2,uVar7,param_3,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "uVar7") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 *rel,type_2 *s,char *name,char *symname)

{
  type_3 var_3;
  type_4 *pbVar2;
  int var_5;
  char *fmt;
  type_5 *prVar4;
  type_6 uVar5;
  type_6 uVar6;
  type_7 *pbVar7;
  type_8 addend_00;
  type_6 uVar8;
  char addend [8];
  
  uVar6 = (type_6)rel->address;
  uVar5 = *(type_6 *)((int)&rel->address + 4);
  if (var_1 != 0) {
    var_2("arelent: %s@%#lx: add=%li\n",(*rel->sym_ptr_ptr)->name,uVar6,(int)rel->addend);
    uVar6 = (type_6)rel->address;
    uVar5 = *(type_6 *)((int)&rel->address + 4);
  }
  addend[0] = '\0';
  addend[1] = '\0';
  addend[2] = '\0';
  addend[3] = '\0';
  addend[4] = '\0';
  addend[5] = '\0';
  addend[6] = '\0';
  addend[7] = '\0';
  var_3 = rel->howto->bitsize;
  pbVar7 = s->owner;
  if (var_3 == 0x10) {
    var_5 = var_4(pbVar7,s,addend,uVar6,uVar5,2,0);
    if (var_5 != 0) {
      pbVar2 = s->owner->xvec;
      if (rel->howto->pc_relative == 0) {
        addend_00 = (*pbVar2->bfd_getx16)(addend);
      }
      else {
        addend_00 = (*pbVar2->bfd_getx_signed_16)(addend);
      }
      goto LAB_000527e0;
    }
LAB_00052797:
    uVar6 = (type_6)rel->address;
    uVar5 = *(type_6 *)((int)&rel->address + 4);
    pbVar7 = s->owner;
  }
  else {
    if (0x10 < var_3) {
      if (var_3 == 0x20) {
        var_5 = var_4(pbVar7,s,addend,uVar6,uVar5,4,0);
        if (var_5 != 0) {
          pbVar2 = s->owner->xvec;
          if (rel->howto->pc_relative == 0) {
            addend_00 = (*pbVar2->bfd_getx32)(addend);
          }
          else {
            addend_00 = (*pbVar2->bfd_getx_signed_32)(addend);
          }
          goto LAB_000527e0;
        }
      }
      else {
        if (var_3 != 0x40) goto LAB_000527a7;
        var_5 = var_4(pbVar7,s,addend,uVar6,uVar5,8,0);
        if (var_5 != 0) {
          addend_00 = (*s->owner->xvec->bfd_getx64)(addend);
          goto LAB_000527e0;
        }
      }
      goto LAB_00052797;
    }
    if (var_3 == 8) {
      var_5 = var_4(pbVar7,s,addend,uVar6,uVar5,1,0);
      if (var_5 != 0) {
        if (rel->howto->pc_relative == 0) {
          addend_00 = (type_8)(addend._0_4_ & 0xff);
        }
        else {
          addend_00 = (type_8)(int)((byte)(addend[0] + 0x80) - 0x80);
        }
        goto LAB_000527e0;
      }
      goto LAB_00052797;
    }
  }
LAB_000527a7:
  fmt = (char *)var_6(0,"%P: %C: cannot get section contents - auto-import exception\n",5);
  addend_00 = 0;
  var_7(fmt,pbVar7,s,uVar6,uVar5);
LAB_000527e0:
  uVar6 = (type_6)addend_00;
  if (var_1 != 0) {
    uVar5 = (type_6)rel->address;
    uVar8 = (type_6)rel->addend;
    var_2("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar6,uVar8,uVar5);
    prVar4 = rel->howto;
    if (prVar4->pc_relative != 0) {
      var_2(" pcrel",uVar6,uVar8,uVar5);
      prVar4 = rel->howto;
    }
    var_2(" %d bit rel.\n",prVar4->bitsize,uVar8,uVar5);
  }
  var_8(rel,s,addend_00,name,symname);
  return;
}


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

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

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

{
  uint uVar1;
  int iVar2;
  undefined4 uVar3;
  undefined4 uVar4;
  undefined4 uVar5;
  undefined4 uVar6;
  ulonglong uVar7;
  uint local_24 [4];
  undefined4 uStack_14;
  
  uStack_14 = 0x52689;
  uVar5 = param_1[1];
  uVar4 = param_1[2];
  if (DAT_001d1144 != 0) {
    printf("arelent: %s@%#lx: add=%li\n",*(undefined4 *)(*(int *)*param_1 + 4),uVar5,param_1[3]);
    uVar5 = param_1[1];
    uVar4 = param_1[2];
  }
  local_24[0] = 0;
  local_24[1] = 0;
  uVar1 = *(uint *)(param_1[5] + 0xc);
  uVar6 = *(undefined4 *)(param_2 + 0xac);
  if (uVar1 == 0x10) {
    iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,2,0);
    if (iVar2 != 0) {
      iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);
      if (*(int *)(param_1[5] + 0x10) == 0) {
        uVar7 = (**(code **)(iVar2 + 0x34))(local_24);
      }
      else {
        uVar7 = (**(code **)(iVar2 + 0x38))(local_24);
      }
      goto LAB_000527e0;
    }
LAB_00052797:
    uVar5 = param_1[1];
    uVar4 = param_1[2];
    uVar6 = *(undefined4 *)(param_2 + 0xac);
  }
  else {
    if (0x10 < uVar1) {
      if (uVar1 == 0x20) {
        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,4,0);
        if (iVar2 != 0) {
          iVar2 = *(int *)(*(int *)(param_2 + 0xac) + 4);
          if (*(int *)(param_1[5] + 0x10) == 0) {
            uVar7 = (**(code **)(iVar2 + 0x28))(local_24);
          }
          else {
            uVar7 = (**(code **)(iVar2 + 0x2c))(local_24);
          }
          goto LAB_000527e0;
        }
      }
      else {
        if (uVar1 != 0x40) goto LAB_000527a7;
        iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,8,0);
        if (iVar2 != 0) {
          uVar7 = (**(code **)(*(int *)(*(int *)(param_2 + 0xac) + 4) + 0x1c))(local_24);
          goto LAB_000527e0;
        }
      }
      goto LAB_00052797;
    }
    if (uVar1 == 8) {
      iVar2 = bfd_get_section_contents(uVar6,param_2,local_24,uVar5,uVar4,1,0);
      if (iVar2 != 0) {
        if (*(int *)(param_1[5] + 0x10) == 0) {
          uVar7 = (ulonglong)(local_24[0] & 0xff);
        }
        else {
          uVar7 = (ulonglong)(int)((byte)((char)local_24[0] + 0x80) - 0x80);
        }
        goto LAB_000527e0;
      }
      goto LAB_00052797;
    }
  }
LAB_000527a7:
  uVar3 = dcgettext(0,"%P: %C: cannot get section contents - auto-import exception\n",5);
  uVar7 = 0;
  FUN_00034d20(uVar3,uVar6,param_2,uVar5,uVar4);
LAB_000527e0:
  uVar5 = (undefined4)uVar7;
  if (DAT_001d1144 != 0) {
    uVar4 = param_1[1];
    uVar6 = param_1[3];
    printf("import of 0x%lx(0x%lx) sec_addr=0x%lx",uVar5,uVar6,uVar4);
    iVar2 = param_1[5];
    if (*(int *)(iVar2 + 0x10) != 0) {
      printf(" pcrel",uVar5,uVar6,uVar4);
      iVar2 = param_1[5];
    }
    printf(" %d bit rel.\n",*(undefined4 *)(iVar2 + 0xc),uVar6,uVar4);
  }
  FUN_0005d9d0(param_1,param_2,uVar7,param_3,param_4);
  return;
}

