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

void s390_literals(int ignore)

{
  undefined4 uVar1;
  s390_lpe *psVar2;
  int iVar3;
  int n;
  char *pcVar4;
  size_t nchars;
  addressT aVar5;
  
  if ((lp_sym != (symbolS *)0x0) && (lpe_count != 0)) {
    S_SET_SEGMENT(lp_sym,now_seg);
    aVar5 = frag_now_fix();
    S_SET_VALUE(lp_sym,aVar5);
    psVar2 = lpe_list;
    lp_sym->sy_frag = frag_now;
    while (psVar2 != (s390_lpe *)0x0) {
      lpe_list = psVar2->next;
      S_SET_SEGMENT(psVar2->sym,now_seg);
      aVar5 = frag_now_fix();
      S_SET_VALUE(psVar2->sym,aVar5);
      psVar2->sym->sy_frag = frag_now;
      if (psVar2->reloc == BFD_RELOC_UNUSED) {
        if ((psVar2->ex).field_0x10 == '\x06') {
          iVar3 = (int)(psVar2->ex).X_add_number;
          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {
            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);
          }
          else {
            generic_floating_point_number.low = (psVar2->floatnum).low;
            generic_floating_point_number.high = (psVar2->floatnum).high;
            generic_floating_point_number.leader = (psVar2->floatnum).leader;
            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;
            generic_floating_point_number.sign = (psVar2->floatnum).sign;
            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;
          }
        }
        emit_expr(&psVar2->ex,psVar2->nbytes);
      }
      else {
        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);
        n = bfd_get_reloc_size(iVar3);
        nchars = psVar2->nbytes;
        if ((int)nchars < n) {
          uVar1 = *(undefined4 *)(iVar3 + 0x20);
          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",
                                      "%s relocations do not fit in %d bytes",nchars,5);
          as_bad(pcVar4,uVar1);
          nchars = psVar2->nbytes;
        }
        pcVar4 = frag_more(nchars);
        number_to_chars_bigendian(pcVar4,0,n);
        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,
                    *(int *)(iVar3 + 0x10),psVar2->reloc);
      }
      psVar2->next = lpe_free_list;
      lpe_free_list = psVar2;
      psVar2 = lpe_list;
    }
    generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_;
    generic_floating_point_number._17_3_ = SUB43(generic_floating_point_number._16_4_,1);
    lpe_list_tail = (s390_lpe *)0x0;
    lp_sym = (symbolS *)0x0;
    lp_count = lp_count + 1;
    lpe_count = 0;
    return;
  }
  return;
}



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

void FUN_00041420(void)

{
  undefined4 uVar1;
  undefined4 *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined8 uVar7;
  
  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {
    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);
    uVar7 = FUN_00023cb0();
    FUN_00036e20(DAT_00070cc0,uVar7);
    puVar2 = DAT_00070cc8;
    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;
    while (puVar2 != (undefined4 *)0x0) {
      DAT_00070cc8 = (undefined4 *)*puVar2;
      FUN_000374f0(puVar2[0xf],DAT_00070dfc);
      uVar7 = FUN_00023cb0();
      FUN_00036e20(puVar2[0xf],uVar7);
      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;
      if (puVar2[0xe] == 0x8ce) {
        if (*(char *)(puVar2 + 5) == '\x06') {
          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {
            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);
          }
          else {
            PTR_DAT_00068280 = (undefined *)puVar2[6];
            PTR_DAT_00068284 = (undefined *)puVar2[7];
            DAT_00068288 = puVar2[8];
            DAT_0006828c = puVar2[9];
            DAT_00068290 = puVar2[10];
          }
        }
        FUN_000301d0(puVar2 + 1,puVar2[0xd]);
      }
      else {
        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);
        iVar4 = bfd_get_reloc_size(iVar3);
        iVar5 = puVar2[0xd];
        if (iVar5 < iVar4) {
          uVar1 = *(undefined4 *)(iVar3 + 0x20);
          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",
                             "%s relocations do not fit in %d bytes",iVar5,5);
          FUN_0002ac50(uVar6,uVar1,iVar5);
          iVar5 = puVar2[0xd];
        }
        iVar5 = FUN_000239b0(iVar5);
        FUN_0003fb00(iVar5,0,0,iVar4);
        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,
                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);
      }
      *puVar2 = DAT_00070ccc;
      DAT_00070ccc = puVar2;
      puVar2 = DAT_00070cc8;
    }
    DAT_00070cc4 = 0;
    DAT_00070cc0 = 0;
    DAT_00070cbc = DAT_00070cbc + 1;
    DAT_00070cb8 = 0;
    return;
  }
  return;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00015020
ADD EBX,0x26bd7
SUB ESP,0x2c
MOV EAX,dword ptr [EBX + 0x8cc0]
TEST EAX,EAX
JZ 0x00041446
MOV EDX,dword ptr [EBX + 0x8cb8]
TEST EDX,EDX
JNZ 0x00041450
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA ECX,[EBX + 0x8dfc]
SUB ESP,0x8
MOV dword ptr [ESP + 0x14],ECX
PUSH dword ptr [ECX]
PUSH EAX
CALL 0x000374f0
CALL 0x00023cb0
ADD ESP,0xc
PUSH EDX
PUSH EAX
PUSH dword ptr [EBX + 0x8cc0]
CALL 0x00036e20
LEA EBP,[EBX + 0x8f24]
MOV EAX,dword ptr [EBX + 0x8cc0]
ADD ESP,0x10
MOV ESI,dword ptr [EBX + 0x8cc8]
MOV EDX,dword ptr [EBP]
MOV dword ptr [EAX + 0x24],EDX
TEST ESI,ESI
JZ 0x00041630
LEA EAX,[EBX + 0x8f80]
MOV EDI,ESI
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0x280]
MOV dword ptr [ESP + 0x18],EAX
JMP 0x0004154b
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0x8fc4]
PUSH dword ptr [EAX]
CALL 0x000131f0
MOV dword ptr [ESP],EAX
MOV ESI,EAX
CALL 0x000131d0
MOV EDX,dword ptr [EDI + 0x34]
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
CMP EAX,EDX
JG 0x000415e8
SUB ESP,0xc
PUSH EDX
CALL 0x000239b0
PUSH dword ptr [ESP + 0x18]
PUSH 0x0
PUSH 0x0
PUSH EAX
MOV dword ptr [ESP + 0x30],EAX
CALL 0x0003fb00
ADD ESP,0x18
MOV EDX,dword ptr [EBP]
PUSH dword ptr [EDI + 0x38]
PUSH dword ptr [ESI + 0x10]
LEA ESI,[EDI + 0x4]
PUSH ESI
LEA ESI,[EDX + 0x4c]
PUSH dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x28]
SUB EAX,ESI
PUSH EAX
PUSH EDX
CALL 0x0003dbd0
ADD ESP,0x20
MOV EAX,dword ptr [EBX + 0x8ccc]
MOV dword ptr [EBX + 0x8ccc],EDI
MOV dword ptr [EDI],EAX
MOV EDI,dword ptr [EBX + 0x8cc8]
TEST EDI,EDI
JZ 0x00041630
MOV EAX,dword ptr [EDI]
SUB ESP,0x8
MOV dword ptr [EBX + 0x8cc8],EAX
MOV EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [EAX]
PUSH dword ptr [EDI + 0x3c]
CALL 0x000374f0
CALL 0x00023cb0
ADD ESP,0xc
PUSH EDX
PUSH EAX
PUSH dword ptr [EDI + 0x3c]
CALL 0x00036e20
MOV EAX,dword ptr [EDI + 0x3c]
MOV EDX,dword ptr [EBP]
ADD ESP,0x10
MOV dword ptr [EAX + 0x24],EDX
MOV EAX,dword ptr [EDI + 0x38]
CMP EAX,0x8ce
JNZ 0x000414c0
CMP byte ptr [EDI + 0x14],0x6
JZ 0x000415b0
SUB ESP,0x8
LEA EAX,[EDI + 0x4]
PUSH dword ptr [EDI + 0x34]
PUSH EAX
CALL 0x000301d0
ADD ESP,0x10
JMP 0x0004152f
MOV EAX,dword ptr [EDI + 0xc]
XOR EDX,EDX
CMP EDX,EAX
SBB EDX,dword ptr [EDI + 0x10]
JL 0x00041660
MOV EAX,dword ptr [EDI + 0x18]
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ECX],EAX
MOV EAX,dword ptr [EDI + 0x1c]
MOV dword ptr [ECX + 0x4],EAX
MOV EAX,dword ptr [EDI + 0x20]
MOV dword ptr [ECX + 0x8],EAX
MOV EAX,dword ptr [EDI + 0x24]
MOV dword ptr [ECX + 0xc],EAX
MOV EAX,dword ptr [EDI + 0x28]
MOV dword ptr [ECX + 0x10],EAX
JMP 0x00041596
MOV EAX,dword ptr [ESI + 0x20]
SUB ESP,0xc
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0xfffe8dd0]
PUSH 0x5
PUSH EDX
MOV dword ptr [ESP + 0x28],EDX
PUSH EAX
LEA EAX,[EBX + 0xfffe8df8]
PUSH EAX
PUSH 0x0
CALL 0x00013760
ADD ESP,0x1c
MOV EDX,dword ptr [ESP + 0x18]
PUSH EDX
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x0002ac50
MOV EDX,dword ptr [EDI + 0x34]
ADD ESP,0x10
JMP 0x000414ed
MOV dword ptr [EBX + 0x8cc4],0x0
MOV dword ptr [EBX + 0x8cc0],0x0
ADD dword ptr [EBX + 0x8cbc],0x1
MOV dword ptr [EBX + 0x8cb8],0x0
ADD ESP,0x2c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
ADD EAX,EAX
LEA EDX,[EDI + 0x2c]
PUSH EAX
PUSH EDX
PUSH dword ptr [ESP + 0x28]
CALL 0x000130f0
ADD ESP,0x10
JMP 0x00041596
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00041420(void)\n\n{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined8 uVar7;\n  \n  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00041420(void)\n\n{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined8 uVar7;\n  \n  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00041420(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined8 uVar7;\n  \n  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (if_statement "if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }" if (parenthesized_expression "((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0))" ( (binary_expression "(DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)" (parenthesized_expression "(DAT_00070cc0 != 0)" ( (binary_expression "DAT_00070cc0 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00070cb8 != 0)" ( (binary_expression "DAT_00070cb8 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }" { (expression_statement "FUN_000374f0(DAT_00070cc0,DAT_00070dfc);" (call_expression "FUN_000374f0(DAT_00070cc0,DAT_00070dfc)" identifier (argument_list "(DAT_00070cc0,DAT_00070dfc)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = FUN_00023cb0();" (assignment_expression "uVar7 = FUN_00023cb0()" identifier = (call_expression "FUN_00023cb0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00036e20(DAT_00070cc0,uVar7);" (call_expression "FUN_00036e20(DAT_00070cc0,uVar7)" identifier (argument_list "(DAT_00070cc0,uVar7)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = DAT_00070cc8;" (assignment_expression "puVar2 = DAT_00070cc8" identifier = identifier) ;) (expression_statement "*(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;" (assignment_expression "*(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24" (pointer_expression "*(int *)(DAT_00070cc0 + 0x24)" * (cast_expression "(int *)(DAT_00070cc0 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00070cc0 + 0x24)" ( (binary_expression "DAT_00070cc0 + 0x24" identifier + number_literal) )))) = identifier) ;) (while_statement "while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }" while (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }" { (expression_statement "DAT_00070cc8 = (undefined4 *)*puVar2;" (assignment_expression "DAT_00070cc8 = (undefined4 *)*puVar2" identifier = (cast_expression "(undefined4 *)*puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "FUN_000374f0(puVar2[0xf],DAT_00070dfc);" (call_expression "FUN_000374f0(puVar2[0xf],DAT_00070dfc)" identifier (argument_list "(puVar2[0xf],DAT_00070dfc)" ( (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "uVar7 = FUN_00023cb0();" (assignment_expression "uVar7 = FUN_00023cb0()" identifier = (call_expression "FUN_00023cb0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00036e20(puVar2[0xf],uVar7);" (call_expression "FUN_00036e20(puVar2[0xf],uVar7)" identifier (argument_list "(puVar2[0xf],uVar7)" ( (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "*(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;" (assignment_expression "*(int *)(puVar2[0xf] + 0x24) = DAT_00070f24" (pointer_expression "*(int *)(puVar2[0xf] + 0x24)" * (cast_expression "(int *)(puVar2[0xf] + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2[0xf] + 0x24)" ( (binary_expression "puVar2[0xf] + 0x24" (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (if_statement "if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" if (parenthesized_expression "(puVar2[0xe] == 0x8ce)" ( (binary_expression "puVar2[0xe] == 0x8ce" (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }" { (if_statement "if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }" if (parenthesized_expression "(*(char *)(puVar2 + 5) == '\x06')" ( (binary_expression "*(char *)(puVar2 + 5) == '\x06'" (pointer_expression "*(char *)(puVar2 + 5)" * (cast_expression "(char *)(puVar2 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 5)" ( (binary_expression "puVar2 + 5" identifier + number_literal) )))) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }" { (if_statement "if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" if (parenthesized_expression "((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0))" ( (binary_expression "(int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)" (cast_expression "(int)-puVar2[4]" ( (type_descriptor "int" primitive_type) ) (unary_expression "-puVar2[4]" - (subscript_expression "puVar2[4]" identifier [ number_literal ]))) < (cast_expression "(int)(uint)(puVar2[3] != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(puVar2[3] != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar2[3] != 0)" ( (binary_expression "puVar2[3] != 0" (subscript_expression "puVar2[3]" identifier [ number_literal ]) != number_literal) ))))) )) (compound_statement "{\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }" { (expression_statement "memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);" (call_expression "memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2)" identifier (argument_list "(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2)" ( (pointer_expression "&DAT_00070f80" & identifier) , (binary_expression "puVar2 + 0xb" identifier + number_literal) , (binary_expression "puVar2[3] * 2" (subscript_expression "puVar2[3]" identifier [ number_literal ]) * number_literal) ))) ;) }) (else_clause "else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" else (compound_statement "{\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" { (expression_statement "PTR_DAT_00068280 = (undefined *)puVar2[6];" (assignment_expression "PTR_DAT_00068280 = (undefined *)puVar2[6]" identifier = (cast_expression "(undefined *)puVar2[6]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[6]" identifier [ number_literal ]))) ;) (expression_statement "PTR_DAT_00068284 = (undefined *)puVar2[7];" (assignment_expression "PTR_DAT_00068284 = (undefined *)puVar2[7]" identifier = (cast_expression "(undefined *)puVar2[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[7]" identifier [ number_literal ]))) ;) (expression_statement "DAT_00068288 = puVar2[8];" (assignment_expression "DAT_00068288 = puVar2[8]" identifier = (subscript_expression "puVar2[8]" identifier [ number_literal ])) ;) (expression_statement "DAT_0006828c = puVar2[9];" (assignment_expression "DAT_0006828c = puVar2[9]" identifier = (subscript_expression "puVar2[9]" identifier [ number_literal ])) ;) (expression_statement "DAT_00068290 = puVar2[10];" (assignment_expression "DAT_00068290 = puVar2[10]" identifier = (subscript_expression "puVar2[10]" identifier [ number_literal ])) ;) }))) })) (expression_statement "FUN_000301d0(puVar2 + 1,puVar2[0xd]);" (call_expression "FUN_000301d0(puVar2 + 1,puVar2[0xd])" identifier (argument_list "(puVar2 + 1,puVar2[0xd])" ( (binary_expression "puVar2 + 1" identifier + number_literal) , (subscript_expression "puVar2[0xd]" identifier [ number_literal ]) ))) ;) }) (else_clause "else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" else (compound_statement "{\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" { (expression_statement "iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);" (assignment_expression "iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe])" identifier = (call_expression "bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe])" identifier (argument_list "(DAT_00070fc4,puVar2[0xe])" ( identifier , (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar4 = bfd_get_reloc_size(iVar3);" (assignment_expression "iVar4 = bfd_get_reloc_size(iVar3)" identifier = (call_expression "bfd_get_reloc_size(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar5 = puVar2[0xd];" (assignment_expression "iVar5 = puVar2[0xd]" identifier = (subscript_expression "puVar2[0xd]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }" if (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) (compound_statement "{\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }" { (expression_statement "uVar1 = *(undefined4 *)(iVar3 + 0x20);" (assignment_expression "uVar1 = *(undefined4 *)(iVar3 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);" (assignment_expression "uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" identifier = (call_expression "dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" identifier (argument_list "(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" ( number_literal , (string_literal ""%s relocations do not fit in %d byte"" " string_content ") , (string_literal ""%s relocations do not fit in %d bytes"" " string_content ") , identifier , number_literal )))) ;) (expression_statement "FUN_0002ac50(uVar6,uVar1,iVar5);" (call_expression "FUN_0002ac50(uVar6,uVar1,iVar5)" identifier (argument_list "(uVar6,uVar1,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = puVar2[0xd];" (assignment_expression "iVar5 = puVar2[0xd]" identifier = (subscript_expression "puVar2[0xd]" identifier [ number_literal ])) ;) })) (expression_statement "iVar5 = FUN_000239b0(iVar5);" (assignment_expression "iVar5 = FUN_000239b0(iVar5)" identifier = (call_expression "FUN_000239b0(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "FUN_0003fb00(iVar5,0,0,iVar4);" (call_expression "FUN_0003fb00(iVar5,0,0,iVar4)" identifier (argument_list "(iVar5,0,0,iVar4)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);" (call_expression "FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe])" identifier (argument_list "(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe])" ( identifier , (binary_expression "iVar5 - (DAT_00070f24 + 0x4c)" identifier - (parenthesized_expression "(DAT_00070f24 + 0x4c)" ( (binary_expression "DAT_00070f24 + 0x4c" identifier + number_literal) ))) , identifier , (binary_expression "puVar2 + 1" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) , (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "*puVar2 = DAT_00070ccc;" (assignment_expression "*puVar2 = DAT_00070ccc" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "DAT_00070ccc = puVar2;" (assignment_expression "DAT_00070ccc = puVar2" identifier = identifier) ;) (expression_statement "puVar2 = DAT_00070cc8;" (assignment_expression "puVar2 = DAT_00070cc8" identifier = identifier) ;) })) (expression_statement "DAT_00070cc4 = 0;" (assignment_expression "DAT_00070cc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00070cc0 = 0;" (assignment_expression "DAT_00070cc0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00070cbc = DAT_00070cbc + 1;" (assignment_expression "DAT_00070cbc = DAT_00070cbc + 1" identifier = (binary_expression "DAT_00070cbc + 1" identifier + number_literal)) ;) (expression_statement "DAT_00070cb8 = 0;" (assignment_expression "DAT_00070cb8 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })) (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 s390_literals(int ignore)\n\n{\n  undefined4 uVar1;\n  s390_lpe *psVar2;\n  int iVar3;\n  int n;\n  char *pcVar4;\n  size_t nchars;\n  addressT aVar5;\n  \n  if ((lp_sym != (symbolS *)0x0) && (lpe_count != 0)) {\n    S_SET_SEGMENT(lp_sym,now_seg);\n    aVar5 = frag_now_fix();\n    S_SET_VALUE(lp_sym,aVar5);\n    psVar2 = lpe_list;\n    lp_sym->sy_frag = frag_now;\n    while (psVar2 != (s390_lpe *)0x0) {\n      lpe_list = psVar2->next;\n      S_SET_SEGMENT(psVar2->sym,now_seg);\n      aVar5 = frag_now_fix();\n      S_SET_VALUE(psVar2->sym,aVar5);\n      psVar2->sym->sy_frag = frag_now;\n      if (psVar2->reloc == BFD_RELOC_UNUSED) {\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }\n      psVar2->next = lpe_free_list;\n      lpe_free_list = psVar2;\n      psVar2 = lpe_list;\n    }\n    generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_;\n    generic_floating_point_number._17_3_ = SUB43(generic_floating_point_number._16_4_,1);\n    lpe_list_tail = (s390_lpe *)0x0;\n    lp_sym = (symbolS *)0x0;\n    lp_count = lp_count + 1;\n    lpe_count = 0;\n    return;\n  }\n  return;\n}\n\n" comment comment (function_definition "void s390_literals(int ignore)\n\n{\n  undefined4 uVar1;\n  s390_lpe *psVar2;\n  int iVar3;\n  int n;\n  char *pcVar4;\n  size_t nchars;\n  addressT aVar5;\n  \n  if ((lp_sym != (symbolS *)0x0) && (lpe_count != 0)) {\n    S_SET_SEGMENT(lp_sym,now_seg);\n    aVar5 = frag_now_fix();\n    S_SET_VALUE(lp_sym,aVar5);\n    psVar2 = lpe_list;\n    lp_sym->sy_frag = frag_now;\n    while (psVar2 != (s390_lpe *)0x0) {\n      lpe_list = psVar2->next;\n      S_SET_SEGMENT(psVar2->sym,now_seg);\n      aVar5 = frag_now_fix();\n      S_SET_VALUE(psVar2->sym,aVar5);\n      psVar2->sym->sy_frag = frag_now;\n      if (psVar2->reloc == BFD_RELOC_UNUSED) {\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }\n      psVar2->next = lpe_free_list;\n      lpe_free_list = psVar2;\n      psVar2 = lpe_list;\n    }\n    generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_;\n    generic_floating_point_number._17_3_ = SUB43(generic_floating_point_number._16_4_,1);\n    lpe_list_tail = (s390_lpe *)0x0;\n    lp_sym = (symbolS *)0x0;\n    lp_count = lp_count + 1;\n    lpe_count = 0;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "s390_literals(int ignore)" identifier (parameter_list "(int ignore)" ( (parameter_declaration "int ignore" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  s390_lpe *psVar2;\n  int iVar3;\n  int n;\n  char *pcVar4;\n  size_t nchars;\n  addressT aVar5;\n  \n  if ((lp_sym != (symbolS *)0x0) && (lpe_count != 0)) {\n    S_SET_SEGMENT(lp_sym,now_seg);\n    aVar5 = frag_now_fix();\n    S_SET_VALUE(lp_sym,aVar5);\n    psVar2 = lpe_list;\n    lp_sym->sy_frag = frag_now;\n    while (psVar2 != (s390_lpe *)0x0) {\n      lpe_list = psVar2->next;\n      S_SET_SEGMENT(psVar2->sym,now_seg);\n      aVar5 = frag_now_fix();\n      S_SET_VALUE(psVar2->sym,aVar5);\n      psVar2->sym->sy_frag = frag_now;\n      if (psVar2->reloc == BFD_RELOC_UNUSED) {\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }\n      psVar2->next = lpe_free_list;\n      lpe_free_list = psVar2;\n      psVar2 = lpe_list;\n    }\n    generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_;\n    generic_floating_point_number._17_3_ = SUB43(generic_floating_point_number._16_4_,1);\n    lpe_list_tail = (s390_lpe *)0x0;\n    lp_sym = (symbolS *)0x0;\n    lp_count = lp_count + 1;\n    lpe_count = 0;\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "s390_lpe *psVar2;" type_identifier (pointer_declarator "*psVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int n;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "size_t nchars;" primitive_type identifier ;) (declaration "addressT aVar5;" type_identifier identifier ;) (if_statement "if ((lp_sym != (symbolS *)0x0) && (lpe_count != 0)) {\n    S_SET_SEGMENT(lp_sym,now_seg);\n    aVar5 = frag_now_fix();\n    S_SET_VALUE(lp_sym,aVar5);\n    psVar2 = lpe_list;\n    lp_sym->sy_frag = frag_now;\n    while (psVar2 != (s390_lpe *)0x0) {\n      lpe_list = psVar2->next;\n      S_SET_SEGMENT(psVar2->sym,now_seg);\n      aVar5 = frag_now_fix();\n      S_SET_VALUE(psVar2->sym,aVar5);\n      psVar2->sym->sy_frag = frag_now;\n      if (psVar2->reloc == BFD_RELOC_UNUSED) {\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }\n      psVar2->next = lpe_free_list;\n      lpe_free_list = psVar2;\n      psVar2 = lpe_list;\n    }\n    generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_;\n    generic_floating_point_number._17_3_ = SUB43(generic_floating_point_number._16_4_,1);\n    lpe_list_tail = (s390_lpe *)0x0;\n    lp_sym = (symbolS *)0x0;\n    lp_count = lp_count + 1;\n    lpe_count = 0;\n    return;\n  }" if (parenthesized_expression "((lp_sym != (symbolS *)0x0) && (lpe_count != 0))" ( (binary_expression "(lp_sym != (symbolS *)0x0) && (lpe_count != 0)" (parenthesized_expression "(lp_sym != (symbolS *)0x0)" ( (binary_expression "lp_sym != (symbolS *)0x0" identifier != (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(lpe_count != 0)" ( (binary_expression "lpe_count != 0" identifier != number_literal) ))) )) (compound_statement "{\n    S_SET_SEGMENT(lp_sym,now_seg);\n    aVar5 = frag_now_fix();\n    S_SET_VALUE(lp_sym,aVar5);\n    psVar2 = lpe_list;\n    lp_sym->sy_frag = frag_now;\n    while (psVar2 != (s390_lpe *)0x0) {\n      lpe_list = psVar2->next;\n      S_SET_SEGMENT(psVar2->sym,now_seg);\n      aVar5 = frag_now_fix();\n      S_SET_VALUE(psVar2->sym,aVar5);\n      psVar2->sym->sy_frag = frag_now;\n      if (psVar2->reloc == BFD_RELOC_UNUSED) {\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }\n      psVar2->next = lpe_free_list;\n      lpe_free_list = psVar2;\n      psVar2 = lpe_list;\n    }\n    generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_;\n    generic_floating_point_number._17_3_ = SUB43(generic_floating_point_number._16_4_,1);\n    lpe_list_tail = (s390_lpe *)0x0;\n    lp_sym = (symbolS *)0x0;\n    lp_count = lp_count + 1;\n    lpe_count = 0;\n    return;\n  }" { (expression_statement "S_SET_SEGMENT(lp_sym,now_seg);" (call_expression "S_SET_SEGMENT(lp_sym,now_seg)" identifier (argument_list "(lp_sym,now_seg)" ( identifier , identifier ))) ;) (expression_statement "aVar5 = frag_now_fix();" (assignment_expression "aVar5 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "S_SET_VALUE(lp_sym,aVar5);" (call_expression "S_SET_VALUE(lp_sym,aVar5)" identifier (argument_list "(lp_sym,aVar5)" ( identifier , identifier ))) ;) (expression_statement "psVar2 = lpe_list;" (assignment_expression "psVar2 = lpe_list" identifier = identifier) ;) (expression_statement "lp_sym->sy_frag = frag_now;" (assignment_expression "lp_sym->sy_frag = frag_now" (field_expression "lp_sym->sy_frag" identifier -> field_identifier) = identifier) ;) (while_statement "while (psVar2 != (s390_lpe *)0x0) {\n      lpe_list = psVar2->next;\n      S_SET_SEGMENT(psVar2->sym,now_seg);\n      aVar5 = frag_now_fix();\n      S_SET_VALUE(psVar2->sym,aVar5);\n      psVar2->sym->sy_frag = frag_now;\n      if (psVar2->reloc == BFD_RELOC_UNUSED) {\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }\n      psVar2->next = lpe_free_list;\n      lpe_free_list = psVar2;\n      psVar2 = lpe_list;\n    }" while (parenthesized_expression "(psVar2 != (s390_lpe *)0x0)" ( (binary_expression "psVar2 != (s390_lpe *)0x0" identifier != (cast_expression "(s390_lpe *)0x0" ( (type_descriptor "s390_lpe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lpe_list = psVar2->next;\n      S_SET_SEGMENT(psVar2->sym,now_seg);\n      aVar5 = frag_now_fix();\n      S_SET_VALUE(psVar2->sym,aVar5);\n      psVar2->sym->sy_frag = frag_now;\n      if (psVar2->reloc == BFD_RELOC_UNUSED) {\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }\n      psVar2->next = lpe_free_list;\n      lpe_free_list = psVar2;\n      psVar2 = lpe_list;\n    }" { (expression_statement "lpe_list = psVar2->next;" (assignment_expression "lpe_list = psVar2->next" identifier = (field_expression "psVar2->next" identifier -> field_identifier)) ;) (expression_statement "S_SET_SEGMENT(psVar2->sym,now_seg);" (call_expression "S_SET_SEGMENT(psVar2->sym,now_seg)" identifier (argument_list "(psVar2->sym,now_seg)" ( (field_expression "psVar2->sym" identifier -> field_identifier) , identifier ))) ;) (expression_statement "aVar5 = frag_now_fix();" (assignment_expression "aVar5 = frag_now_fix()" identifier = (call_expression "frag_now_fix()" identifier (argument_list "()" ( )))) ;) (expression_statement "S_SET_VALUE(psVar2->sym,aVar5);" (call_expression "S_SET_VALUE(psVar2->sym,aVar5)" identifier (argument_list "(psVar2->sym,aVar5)" ( (field_expression "psVar2->sym" identifier -> field_identifier) , identifier ))) ;) (expression_statement "psVar2->sym->sy_frag = frag_now;" (assignment_expression "psVar2->sym->sy_frag = frag_now" (field_expression "psVar2->sym->sy_frag" (field_expression "psVar2->sym" identifier -> field_identifier) -> field_identifier) = identifier) ;) (if_statement "if (psVar2->reloc == BFD_RELOC_UNUSED) {\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }" if (parenthesized_expression "(psVar2->reloc == BFD_RELOC_UNUSED)" ( (binary_expression "psVar2->reloc == BFD_RELOC_UNUSED" (field_expression "psVar2->reloc" identifier -> field_identifier) == identifier) )) (compound_statement "{\n        if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }\n        emit_expr(&psVar2->ex,psVar2->nbytes);\n      }" { (if_statement "if ((psVar2->ex).field_0x10 == '\x06') {\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }" if (parenthesized_expression "((psVar2->ex).field_0x10 == '\x06')" ( (binary_expression "(psVar2->ex).field_0x10 == '\x06'" (field_expression "(psVar2->ex).field_0x10" (parenthesized_expression "(psVar2->ex)" ( (field_expression "psVar2->ex" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n          iVar3 = (int)(psVar2->ex).X_add_number;\n          if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }\n        }" { (expression_statement "iVar3 = (int)(psVar2->ex).X_add_number;" (assignment_expression "iVar3 = (int)(psVar2->ex).X_add_number" identifier = (cast_expression "(int)(psVar2->ex).X_add_number" ( (type_descriptor "int" primitive_type) ) (field_expression "(psVar2->ex).X_add_number" (parenthesized_expression "(psVar2->ex)" ( (field_expression "psVar2->ex" identifier -> field_identifier) )) . field_identifier))) ;) (if_statement "if (-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)) {\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }\n          else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }" if (parenthesized_expression "(-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0))" ( (binary_expression "-*(int *)((int)&(psVar2->ex).X_add_number + 4) < (int)(uint)(iVar3 != 0)" (unary_expression "-*(int *)((int)&(psVar2->ex).X_add_number + 4)" - (pointer_expression "*(int *)((int)&(psVar2->ex).X_add_number + 4)" * (cast_expression "(int *)((int)&(psVar2->ex).X_add_number + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(psVar2->ex).X_add_number + 4)" ( (binary_expression "(int)&(psVar2->ex).X_add_number + 4" (cast_expression "(int)&(psVar2->ex).X_add_number" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(psVar2->ex).X_add_number" & (field_expression "(psVar2->ex).X_add_number" (parenthesized_expression "(psVar2->ex)" ( (field_expression "psVar2->ex" identifier -> field_identifier) )) . field_identifier))) + number_literal) ))))) < (cast_expression "(int)(uint)(iVar3 != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(iVar3 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) ))))) )) (compound_statement "{\n            memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);\n          }" { (expression_statement "memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2);" (call_expression "memcpy(&generic_bignum,psVar2->bignum,iVar3 * 2)" identifier (argument_list "(&generic_bignum,psVar2->bignum,iVar3 * 2)" ( (pointer_expression "&generic_bignum" & identifier) , (field_expression "psVar2->bignum" identifier -> field_identifier) , (binary_expression "iVar3 * 2" identifier * number_literal) ))) ;) }) (else_clause "else {\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }" else (compound_statement "{\n            generic_floating_point_number.low = (psVar2->floatnum).low;\n            generic_floating_point_number.high = (psVar2->floatnum).high;\n            generic_floating_point_number.leader = (psVar2->floatnum).leader;\n            generic_floating_point_number.exponent = (psVar2->floatnum).exponent;\n            generic_floating_point_number.sign = (psVar2->floatnum).sign;\n            generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;\n          }" { (expression_statement "generic_floating_point_number.low = (psVar2->floatnum).low;" (assignment_expression "generic_floating_point_number.low = (psVar2->floatnum).low" (field_expression "generic_floating_point_number.low" identifier . field_identifier) = (field_expression "(psVar2->floatnum).low" (parenthesized_expression "(psVar2->floatnum)" ( (field_expression "psVar2->floatnum" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "generic_floating_point_number.high = (psVar2->floatnum).high;" (assignment_expression "generic_floating_point_number.high = (psVar2->floatnum).high" (field_expression "generic_floating_point_number.high" identifier . field_identifier) = (field_expression "(psVar2->floatnum).high" (parenthesized_expression "(psVar2->floatnum)" ( (field_expression "psVar2->floatnum" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "generic_floating_point_number.leader = (psVar2->floatnum).leader;" (assignment_expression "generic_floating_point_number.leader = (psVar2->floatnum).leader" (field_expression "generic_floating_point_number.leader" identifier . field_identifier) = (field_expression "(psVar2->floatnum).leader" (parenthesized_expression "(psVar2->floatnum)" ( (field_expression "psVar2->floatnum" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "generic_floating_point_number.exponent = (psVar2->floatnum).exponent;" (assignment_expression "generic_floating_point_number.exponent = (psVar2->floatnum).exponent" (field_expression "generic_floating_point_number.exponent" identifier . field_identifier) = (field_expression "(psVar2->floatnum).exponent" (parenthesized_expression "(psVar2->floatnum)" ( (field_expression "psVar2->floatnum" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "generic_floating_point_number.sign = (psVar2->floatnum).sign;" (assignment_expression "generic_floating_point_number.sign = (psVar2->floatnum).sign" (field_expression "generic_floating_point_number.sign" identifier . field_identifier) = (field_expression "(psVar2->floatnum).sign" (parenthesized_expression "(psVar2->floatnum)" ( (field_expression "psVar2->floatnum" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11;" (assignment_expression "generic_floating_point_number._17_3_ = *(undefined3 *)&(psVar2->floatnum).field_0x11" (field_expression "generic_floating_point_number._17_3_" identifier . field_identifier) = (pointer_expression "*(undefined3 *)&(psVar2->floatnum).field_0x11" * (cast_expression "(undefined3 *)&(psVar2->floatnum).field_0x11" ( (type_descriptor "undefined3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(psVar2->floatnum).field_0x11" & (field_expression "(psVar2->floatnum).field_0x11" (parenthesized_expression "(psVar2->floatnum)" ( (field_expression "psVar2->floatnum" identifier -> field_identifier) )) . field_identifier))))) ;) }))) })) (expression_statement "emit_expr(&psVar2->ex,psVar2->nbytes);" (call_expression "emit_expr(&psVar2->ex,psVar2->nbytes)" identifier (argument_list "(&psVar2->ex,psVar2->nbytes)" ( (pointer_expression "&psVar2->ex" & (field_expression "psVar2->ex" identifier -> field_identifier)) , (field_expression "psVar2->nbytes" identifier -> field_identifier) ))) ;) }) (else_clause "else {\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }" else (compound_statement "{\n        iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);\n        n = bfd_get_reloc_size(iVar3);\n        nchars = psVar2->nbytes;\n        if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }\n        pcVar4 = frag_more(nchars);\n        number_to_chars_bigendian(pcVar4,0,n);\n        fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);\n      }" { (expression_statement "iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc);" (assignment_expression "iVar3 = bfd_reloc_type_lookup(stdoutput,psVar2->reloc)" identifier = (call_expression "bfd_reloc_type_lookup(stdoutput,psVar2->reloc)" identifier (argument_list "(stdoutput,psVar2->reloc)" ( identifier , (field_expression "psVar2->reloc" identifier -> field_identifier) )))) ;) (expression_statement "n = bfd_get_reloc_size(iVar3);" (assignment_expression "n = bfd_get_reloc_size(iVar3)" identifier = (call_expression "bfd_get_reloc_size(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "nchars = psVar2->nbytes;" (assignment_expression "nchars = psVar2->nbytes" identifier = (field_expression "psVar2->nbytes" identifier -> field_identifier)) ;) (if_statement "if ((int)nchars < n) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }" if (parenthesized_expression "((int)nchars < n)" ( (binary_expression "(int)nchars < n" (cast_expression "(int)nchars" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);\n          as_bad(pcVar4,uVar1);\n          nchars = psVar2->nbytes;\n        }" { (expression_statement "uVar1 = *(undefined4 *)(iVar3 + 0x20);" (assignment_expression "uVar1 = *(undefined4 *)(iVar3 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5);" (assignment_expression "pcVar4 = (char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5)" identifier = (cast_expression "(char *)dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5)" identifier (argument_list "(0,"%s relocations do not fit in %d byte",\n                                      "%s relocations do not fit in %d bytes",nchars,5)" ( number_literal , (string_literal ""%s relocations do not fit in %d byte"" " string_content ") , (string_literal ""%s relocations do not fit in %d bytes"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "as_bad(pcVar4,uVar1);" (call_expression "as_bad(pcVar4,uVar1)" identifier (argument_list "(pcVar4,uVar1)" ( identifier , identifier ))) ;) (expression_statement "nchars = psVar2->nbytes;" (assignment_expression "nchars = psVar2->nbytes" identifier = (field_expression "psVar2->nbytes" identifier -> field_identifier)) ;) })) (expression_statement "pcVar4 = frag_more(nchars);" (assignment_expression "pcVar4 = frag_more(nchars)" identifier = (call_expression "frag_more(nchars)" identifier (argument_list "(nchars)" ( identifier )))) ;) (expression_statement "number_to_chars_bigendian(pcVar4,0,n);" (call_expression "number_to_chars_bigendian(pcVar4,0,n)" identifier (argument_list "(pcVar4,0,n)" ( identifier , number_literal , identifier ))) ;) (expression_statement "fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc);" (call_expression "fix_new_exp(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc)" identifier (argument_list "(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,n,&psVar2->ex,\n                    *(int *)(iVar3 + 0x10),psVar2->reloc)" ( identifier , (binary_expression "(int)pcVar4 - (int)frag_now->fr_literal" (cast_expression "(int)pcVar4" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)frag_now->fr_literal" ( (type_descriptor "int" primitive_type) ) (field_expression "frag_now->fr_literal" identifier -> field_identifier))) , identifier , (pointer_expression "&psVar2->ex" & (field_expression "psVar2->ex" identifier -> field_identifier)) , (pointer_expression "*(int *)(iVar3 + 0x10)" * (cast_expression "(int *)(iVar3 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) , (field_expression "psVar2->reloc" identifier -> field_identifier) ))) ;) }))) (expression_statement "psVar2->next = lpe_free_list;" (assignment_expression "psVar2->next = lpe_free_list" (field_expression "psVar2->next" identifier -> field_identifier) = identifier) ;) (expression_statement "lpe_free_list = psVar2;" (assignment_expression "lpe_free_list = psVar2" identifier = identifier) ;) (expression_statement "psVar2 = lpe_list;" (assignment_expression "psVar2 = lpe_list" identifier = identifier) ;) })) (expression_statement "generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_;" (assignment_expression "generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_" (field_expression "generic_floating_point_number.sign" identifier . field_identifier) = (cast_expression "(char)generic_floating_point_number._16_4_" ( (type_descriptor "char" primitive_type) ) (field_expression "generic_floating_point_number._16_4_" identifier . field_identifier))) ;) (expression_statement "generic_floating_point_number._17_3_ = SUB43(generic_floating_point_number._16_4_,1);" (assignment_expression "generic_floating_point_number._17_3_ = SUB43(generic_floating_point_number._16_4_,1)" (field_expression "generic_floating_point_number._17_3_" identifier . field_identifier) = (call_expression "SUB43(generic_floating_point_number._16_4_,1)" identifier (argument_list "(generic_floating_point_number._16_4_,1)" ( (field_expression "generic_floating_point_number._16_4_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "lpe_list_tail = (s390_lpe *)0x0;" (assignment_expression "lpe_list_tail = (s390_lpe *)0x0" identifier = (cast_expression "(s390_lpe *)0x0" ( (type_descriptor "s390_lpe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lp_sym = (symbolS *)0x0;" (assignment_expression "lp_sym = (symbolS *)0x0" identifier = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "lp_count = lp_count + 1;" (assignment_expression "lp_count = lp_count + 1" identifier = (binary_expression "lp_count + 1" identifier + number_literal)) ;) (expression_statement "lpe_count = 0;" (assignment_expression "lpe_count = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00041420(void)\n\n{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined8 uVar7;\n  \n  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00041420(void)\n\n{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined8 uVar7;\n  \n  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00041420(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined8 uVar7;\n  \n  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "undefined4 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "undefined8 uVar7;" type_identifier identifier ;) (if_statement "if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }" if (parenthesized_expression "((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0))" ( (binary_expression "(DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)" (parenthesized_expression "(DAT_00070cc0 != 0)" ( (binary_expression "DAT_00070cc0 != 0" identifier != number_literal) )) && (parenthesized_expression "(DAT_00070cb8 != 0)" ( (binary_expression "DAT_00070cb8 != 0" identifier != number_literal) ))) )) (compound_statement "{\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }" { (expression_statement "FUN_000374f0(DAT_00070cc0,DAT_00070dfc);" (call_expression "FUN_000374f0(DAT_00070cc0,DAT_00070dfc)" identifier (argument_list "(DAT_00070cc0,DAT_00070dfc)" ( identifier , identifier ))) ;) (expression_statement "uVar7 = FUN_00023cb0();" (assignment_expression "uVar7 = FUN_00023cb0()" identifier = (call_expression "FUN_00023cb0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00036e20(DAT_00070cc0,uVar7);" (call_expression "FUN_00036e20(DAT_00070cc0,uVar7)" identifier (argument_list "(DAT_00070cc0,uVar7)" ( identifier , identifier ))) ;) (expression_statement "puVar2 = DAT_00070cc8;" (assignment_expression "puVar2 = DAT_00070cc8" identifier = identifier) ;) (expression_statement "*(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;" (assignment_expression "*(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24" (pointer_expression "*(int *)(DAT_00070cc0 + 0x24)" * (cast_expression "(int *)(DAT_00070cc0 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00070cc0 + 0x24)" ( (binary_expression "DAT_00070cc0 + 0x24" identifier + number_literal) )))) = identifier) ;) (while_statement "while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }" while (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" ( (binary_expression "puVar2 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }" { (expression_statement "DAT_00070cc8 = (undefined4 *)*puVar2;" (assignment_expression "DAT_00070cc8 = (undefined4 *)*puVar2" identifier = (cast_expression "(undefined4 *)*puVar2" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar2" * identifier))) ;) (expression_statement "FUN_000374f0(puVar2[0xf],DAT_00070dfc);" (call_expression "FUN_000374f0(puVar2[0xf],DAT_00070dfc)" identifier (argument_list "(puVar2[0xf],DAT_00070dfc)" ( (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "uVar7 = FUN_00023cb0();" (assignment_expression "uVar7 = FUN_00023cb0()" identifier = (call_expression "FUN_00023cb0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00036e20(puVar2[0xf],uVar7);" (call_expression "FUN_00036e20(puVar2[0xf],uVar7)" identifier (argument_list "(puVar2[0xf],uVar7)" ( (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "*(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;" (assignment_expression "*(int *)(puVar2[0xf] + 0x24) = DAT_00070f24" (pointer_expression "*(int *)(puVar2[0xf] + 0x24)" * (cast_expression "(int *)(puVar2[0xf] + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2[0xf] + 0x24)" ( (binary_expression "puVar2[0xf] + 0x24" (subscript_expression "puVar2[0xf]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (if_statement "if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" if (parenthesized_expression "(puVar2[0xe] == 0x8ce)" ( (binary_expression "puVar2[0xe] == 0x8ce" (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }" { (if_statement "if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }" if (parenthesized_expression "(*(char *)(puVar2 + 5) == '\x06')" ( (binary_expression "*(char *)(puVar2 + 5) == '\x06'" (pointer_expression "*(char *)(puVar2 + 5)" * (cast_expression "(char *)(puVar2 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 5)" ( (binary_expression "puVar2 + 5" identifier + number_literal) )))) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }" { (if_statement "if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" if (parenthesized_expression "((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0))" ( (binary_expression "(int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)" (cast_expression "(int)-puVar2[4]" ( (type_descriptor "int" primitive_type) ) (unary_expression "-puVar2[4]" - (subscript_expression "puVar2[4]" identifier [ number_literal ]))) < (cast_expression "(int)(uint)(puVar2[3] != 0)" ( (type_descriptor "int" primitive_type) ) (call_expression "(uint)(puVar2[3] != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar2[3] != 0)" ( (binary_expression "puVar2[3] != 0" (subscript_expression "puVar2[3]" identifier [ number_literal ]) != number_literal) ))))) )) (compound_statement "{\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }" { (expression_statement "memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);" (call_expression "memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2)" identifier (argument_list "(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2)" ( (pointer_expression "&DAT_00070f80" & identifier) , (binary_expression "puVar2 + 0xb" identifier + number_literal) , (binary_expression "puVar2[3] * 2" (subscript_expression "puVar2[3]" identifier [ number_literal ]) * number_literal) ))) ;) }) (else_clause "else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" else (compound_statement "{\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" { (expression_statement "PTR_DAT_00068280 = (undefined *)puVar2[6];" (assignment_expression "PTR_DAT_00068280 = (undefined *)puVar2[6]" identifier = (cast_expression "(undefined *)puVar2[6]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[6]" identifier [ number_literal ]))) ;) (expression_statement "PTR_DAT_00068284 = (undefined *)puVar2[7];" (assignment_expression "PTR_DAT_00068284 = (undefined *)puVar2[7]" identifier = (cast_expression "(undefined *)puVar2[7]" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar2[7]" identifier [ number_literal ]))) ;) (expression_statement "DAT_00068288 = puVar2[8];" (assignment_expression "DAT_00068288 = puVar2[8]" identifier = (subscript_expression "puVar2[8]" identifier [ number_literal ])) ;) (expression_statement "DAT_0006828c = puVar2[9];" (assignment_expression "DAT_0006828c = puVar2[9]" identifier = (subscript_expression "puVar2[9]" identifier [ number_literal ])) ;) (expression_statement "DAT_00068290 = puVar2[10];" (assignment_expression "DAT_00068290 = puVar2[10]" identifier = (subscript_expression "puVar2[10]" identifier [ number_literal ])) ;) }))) })) (expression_statement "FUN_000301d0(puVar2 + 1,puVar2[0xd]);" (call_expression "FUN_000301d0(puVar2 + 1,puVar2[0xd])" identifier (argument_list "(puVar2 + 1,puVar2[0xd])" ( (binary_expression "puVar2 + 1" identifier + number_literal) , (subscript_expression "puVar2[0xd]" identifier [ number_literal ]) ))) ;) }) (else_clause "else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" else (compound_statement "{\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" { (expression_statement "iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);" (assignment_expression "iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe])" identifier = (call_expression "bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe])" identifier (argument_list "(DAT_00070fc4,puVar2[0xe])" ( identifier , (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar4 = bfd_get_reloc_size(iVar3);" (assignment_expression "iVar4 = bfd_get_reloc_size(iVar3)" identifier = (call_expression "bfd_get_reloc_size(iVar3)" identifier (argument_list "(iVar3)" ( identifier )))) ;) (expression_statement "iVar5 = puVar2[0xd];" (assignment_expression "iVar5 = puVar2[0xd]" identifier = (subscript_expression "puVar2[0xd]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }" if (parenthesized_expression "(iVar5 < iVar4)" ( (binary_expression "iVar5 < iVar4" identifier < identifier) )) (compound_statement "{\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }" { (expression_statement "uVar1 = *(undefined4 *)(iVar3 + 0x20);" (assignment_expression "uVar1 = *(undefined4 *)(iVar3 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" * (cast_expression "(undefined4 *)(iVar3 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x20)" ( (binary_expression "iVar3 + 0x20" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);" (assignment_expression "uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" identifier = (call_expression "dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" identifier (argument_list "(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" ( number_literal , (string_literal ""%s relocations do not fit in %d byte"" " string_content ") , (string_literal ""%s relocations do not fit in %d bytes"" " string_content ") , identifier , number_literal )))) ;) (expression_statement "FUN_0002ac50(uVar6,uVar1,iVar5);" (call_expression "FUN_0002ac50(uVar6,uVar1,iVar5)" identifier (argument_list "(uVar6,uVar1,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = puVar2[0xd];" (assignment_expression "iVar5 = puVar2[0xd]" identifier = (subscript_expression "puVar2[0xd]" identifier [ number_literal ])) ;) })) (expression_statement "iVar5 = FUN_000239b0(iVar5);" (assignment_expression "iVar5 = FUN_000239b0(iVar5)" identifier = (call_expression "FUN_000239b0(iVar5)" identifier (argument_list "(iVar5)" ( identifier )))) ;) (expression_statement "FUN_0003fb00(iVar5,0,0,iVar4);" (call_expression "FUN_0003fb00(iVar5,0,0,iVar4)" identifier (argument_list "(iVar5,0,0,iVar4)" ( identifier , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);" (call_expression "FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe])" identifier (argument_list "(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe])" ( identifier , (binary_expression "iVar5 - (DAT_00070f24 + 0x4c)" identifier - (parenthesized_expression "(DAT_00070f24 + 0x4c)" ( (binary_expression "DAT_00070f24 + 0x4c" identifier + number_literal) ))) , identifier , (binary_expression "puVar2 + 1" identifier + number_literal) , (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" * (cast_expression "(undefined4 *)(iVar3 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x10)" ( (binary_expression "iVar3 + 0x10" identifier + number_literal) )))) , (subscript_expression "puVar2[0xe]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "*puVar2 = DAT_00070ccc;" (assignment_expression "*puVar2 = DAT_00070ccc" (pointer_expression "*puVar2" * identifier) = identifier) ;) (expression_statement "DAT_00070ccc = puVar2;" (assignment_expression "DAT_00070ccc = puVar2" identifier = identifier) ;) (expression_statement "puVar2 = DAT_00070cc8;" (assignment_expression "puVar2 = DAT_00070cc8" identifier = identifier) ;) })) (expression_statement "DAT_00070cc4 = 0;" (assignment_expression "DAT_00070cc4 = 0" identifier = number_literal) ;) (expression_statement "DAT_00070cc0 = 0;" (assignment_expression "DAT_00070cc0 = 0" identifier = number_literal) ;) (expression_statement "DAT_00070cbc = DAT_00070cbc + 1;" (assignment_expression "DAT_00070cbc = DAT_00070cbc + 1" identifier = (binary_expression "DAT_00070cbc + 1" identifier + number_literal)) ;) (expression_statement "DAT_00070cb8 = 0;" (assignment_expression "DAT_00070cb8 = 0" identifier = number_literal) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (unary_expression - (subscript_expression IDENT [ LIT ]))) < (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (binary_expression (subscript_expression IDENT [ LIT ]) * LIT) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (subscript_expression IDENT [ LIT ]) ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT - (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) ))) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void FUN_00041420(void)\n\n{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined8 uVar7;\n  \n  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00041420(void)" (identifier "FUN_00041420") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  undefined4 *puVar2;\n  int iVar3;\n  int iVar4;\n  int iVar5;\n  undefined4 uVar6;\n  undefined8 uVar7;\n  \n  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "undefined4 *puVar2;" (type_identifier "undefined4") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "undefined8 uVar7;" (type_identifier "undefined8") (identifier "uVar7") (; ";")) (if_statement "if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }" (if "if") (parenthesized_expression "((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0))" (( "(") (binary_expression "(DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)" (parenthesized_expression "(DAT_00070cc0 != 0)" (( "(") (binary_expression "DAT_00070cc0 != 0" (identifier "DAT_00070cc0") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(DAT_00070cb8 != 0)" (( "(") (binary_expression "DAT_00070cb8 != 0" (identifier "DAT_00070cb8") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);\n    uVar7 = FUN_00023cb0();\n    FUN_00036e20(DAT_00070cc0,uVar7);\n    puVar2 = DAT_00070cc8;\n    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;\n    while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }\n    DAT_00070cc4 = 0;\n    DAT_00070cc0 = 0;\n    DAT_00070cbc = DAT_00070cbc + 1;\n    DAT_00070cb8 = 0;\n    return;\n  }" ({ "{") (expression_statement "FUN_000374f0(DAT_00070cc0,DAT_00070dfc);" (call_expression "FUN_000374f0(DAT_00070cc0,DAT_00070dfc)" (identifier "FUN_000374f0") (argument_list "(DAT_00070cc0,DAT_00070dfc)" (( "(") (identifier "DAT_00070cc0") (, ",") (identifier "DAT_00070dfc") () ")"))) (; ";")) (expression_statement "uVar7 = FUN_00023cb0();" (assignment_expression "uVar7 = FUN_00023cb0()" (identifier "uVar7") (= "=") (call_expression "FUN_00023cb0()" (identifier "FUN_00023cb0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_00036e20(DAT_00070cc0,uVar7);" (call_expression "FUN_00036e20(DAT_00070cc0,uVar7)" (identifier "FUN_00036e20") (argument_list "(DAT_00070cc0,uVar7)" (( "(") (identifier "DAT_00070cc0") (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "puVar2 = DAT_00070cc8;" (assignment_expression "puVar2 = DAT_00070cc8" (identifier "puVar2") (= "=") (identifier "DAT_00070cc8")) (; ";")) (expression_statement "*(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;" (assignment_expression "*(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24" (pointer_expression "*(int *)(DAT_00070cc0 + 0x24)" (* "*") (cast_expression "(int *)(DAT_00070cc0 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00070cc0 + 0x24)" (( "(") (binary_expression "DAT_00070cc0 + 0x24" (identifier "DAT_00070cc0") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "DAT_00070f24")) (; ";")) (while_statement "while (puVar2 != (undefined4 *)0x0) {\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }" (while "while") (parenthesized_expression "(puVar2 != (undefined4 *)0x0)" (( "(") (binary_expression "puVar2 != (undefined4 *)0x0" (identifier "puVar2") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      DAT_00070cc8 = (undefined4 *)*puVar2;\n      FUN_000374f0(puVar2[0xf],DAT_00070dfc);\n      uVar7 = FUN_00023cb0();\n      FUN_00036e20(puVar2[0xf],uVar7);\n      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;\n      if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }\n      *puVar2 = DAT_00070ccc;\n      DAT_00070ccc = puVar2;\n      puVar2 = DAT_00070cc8;\n    }" ({ "{") (expression_statement "DAT_00070cc8 = (undefined4 *)*puVar2;" (assignment_expression "DAT_00070cc8 = (undefined4 *)*puVar2" (identifier "DAT_00070cc8") (= "=") (cast_expression "(undefined4 *)*puVar2" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar2" (* "*") (identifier "puVar2")))) (; ";")) (expression_statement "FUN_000374f0(puVar2[0xf],DAT_00070dfc);" (call_expression "FUN_000374f0(puVar2[0xf],DAT_00070dfc)" (identifier "FUN_000374f0") (argument_list "(puVar2[0xf],DAT_00070dfc)" (( "(") (subscript_expression "puVar2[0xf]" (identifier "puVar2") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "DAT_00070dfc") () ")"))) (; ";")) (expression_statement "uVar7 = FUN_00023cb0();" (assignment_expression "uVar7 = FUN_00023cb0()" (identifier "uVar7") (= "=") (call_expression "FUN_00023cb0()" (identifier "FUN_00023cb0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_00036e20(puVar2[0xf],uVar7);" (call_expression "FUN_00036e20(puVar2[0xf],uVar7)" (identifier "FUN_00036e20") (argument_list "(puVar2[0xf],uVar7)" (( "(") (subscript_expression "puVar2[0xf]" (identifier "puVar2") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar7") () ")"))) (; ";")) (expression_statement "*(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;" (assignment_expression "*(int *)(puVar2[0xf] + 0x24) = DAT_00070f24" (pointer_expression "*(int *)(puVar2[0xf] + 0x24)" (* "*") (cast_expression "(int *)(puVar2[0xf] + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2[0xf] + 0x24)" (( "(") (binary_expression "puVar2[0xf] + 0x24" (subscript_expression "puVar2[0xf]" (identifier "puVar2") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "DAT_00070f24")) (; ";")) (if_statement "if (puVar2[0xe] == 0x8ce) {\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }\n      else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" (if "if") (parenthesized_expression "(puVar2[0xe] == 0x8ce)" (( "(") (binary_expression "puVar2[0xe] == 0x8ce" (subscript_expression "puVar2[0xe]" (identifier "puVar2") ([ "[") (number_literal "0xe") (] "]")) (== "==") (number_literal "0x8ce")) () ")")) (compound_statement "{\n        if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }\n        FUN_000301d0(puVar2 + 1,puVar2[0xd]);\n      }" ({ "{") (if_statement "if (*(char *)(puVar2 + 5) == '\x06') {\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }" (if "if") (parenthesized_expression "(*(char *)(puVar2 + 5) == '\x06')" (( "(") (binary_expression "*(char *)(puVar2 + 5) == '\x06'" (pointer_expression "*(char *)(puVar2 + 5)" (* "*") (cast_expression "(char *)(puVar2 + 5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 5)" (( "(") (binary_expression "puVar2 + 5" (identifier "puVar2") (+ "+") (number_literal "5")) () ")")))) (== "==") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")")) (compound_statement "{\n          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }\n        }" ({ "{") (if_statement "if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }\n          else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" (if "if") (parenthesized_expression "((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0))" (( "(") (binary_expression "(int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)" (cast_expression "(int)-puVar2[4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (unary_expression "-puVar2[4]" (- "-") (subscript_expression "puVar2[4]" (identifier "puVar2") ([ "[") (number_literal "4") (] "]")))) (< "<") (cast_expression "(int)(uint)(puVar2[3] != 0)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (call_expression "(uint)(puVar2[3] != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar2[3] != 0)" (( "(") (binary_expression "puVar2[3] != 0" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0")) () ")"))))) () ")")) (compound_statement "{\n            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);\n          }" ({ "{") (expression_statement "memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);" (call_expression "memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2)" (identifier "memcpy") (argument_list "(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2)" (( "(") (pointer_expression "&DAT_00070f80" (& "&") (identifier "DAT_00070f80")) (, ",") (binary_expression "puVar2 + 0xb" (identifier "puVar2") (+ "+") (number_literal "0xb")) (, ",") (binary_expression "puVar2[3] * 2" (subscript_expression "puVar2[3]" (identifier "puVar2") ([ "[") (number_literal "3") (] "]")) (* "*") (number_literal "2")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" (else "else") (compound_statement "{\n            PTR_DAT_00068280 = (undefined *)puVar2[6];\n            PTR_DAT_00068284 = (undefined *)puVar2[7];\n            DAT_00068288 = puVar2[8];\n            DAT_0006828c = puVar2[9];\n            DAT_00068290 = puVar2[10];\n          }" ({ "{") (expression_statement "PTR_DAT_00068280 = (undefined *)puVar2[6];" (assignment_expression "PTR_DAT_00068280 = (undefined *)puVar2[6]" (identifier "PTR_DAT_00068280") (= "=") (cast_expression "(undefined *)puVar2[6]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[6]" (identifier "puVar2") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "PTR_DAT_00068284 = (undefined *)puVar2[7];" (assignment_expression "PTR_DAT_00068284 = (undefined *)puVar2[7]" (identifier "PTR_DAT_00068284") (= "=") (cast_expression "(undefined *)puVar2[7]" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar2[7]" (identifier "puVar2") ([ "[") (number_literal "7") (] "]")))) (; ";")) (expression_statement "DAT_00068288 = puVar2[8];" (assignment_expression "DAT_00068288 = puVar2[8]" (identifier "DAT_00068288") (= "=") (subscript_expression "puVar2[8]" (identifier "puVar2") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "DAT_0006828c = puVar2[9];" (assignment_expression "DAT_0006828c = puVar2[9]" (identifier "DAT_0006828c") (= "=") (subscript_expression "puVar2[9]" (identifier "puVar2") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "DAT_00068290 = puVar2[10];" (assignment_expression "DAT_00068290 = puVar2[10]" (identifier "DAT_00068290") (= "=") (subscript_expression "puVar2[10]" (identifier "puVar2") ([ "[") (number_literal "10") (] "]"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "FUN_000301d0(puVar2 + 1,puVar2[0xd]);" (call_expression "FUN_000301d0(puVar2 + 1,puVar2[0xd])" (identifier "FUN_000301d0") (argument_list "(puVar2 + 1,puVar2[0xd])" (( "(") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1")) (, ",") (subscript_expression "puVar2[0xd]" (identifier "puVar2") ([ "[") (number_literal "0xd") (] "]")) () ")"))) (; ";")) (} "}")) (else_clause "else {\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" (else "else") (compound_statement "{\n        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);\n        iVar4 = bfd_get_reloc_size(iVar3);\n        iVar5 = puVar2[0xd];\n        if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }\n        iVar5 = FUN_000239b0(iVar5);\n        FUN_0003fb00(iVar5,0,0,iVar4);\n        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);\n      }" ({ "{") (expression_statement "iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);" (assignment_expression "iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe])" (identifier "iVar3") (= "=") (call_expression "bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe])" (identifier "bfd_reloc_type_lookup") (argument_list "(DAT_00070fc4,puVar2[0xe])" (( "(") (identifier "DAT_00070fc4") (, ",") (subscript_expression "puVar2[0xe]" (identifier "puVar2") ([ "[") (number_literal "0xe") (] "]")) () ")")))) (; ";")) (expression_statement "iVar4 = bfd_get_reloc_size(iVar3);" (assignment_expression "iVar4 = bfd_get_reloc_size(iVar3)" (identifier "iVar4") (= "=") (call_expression "bfd_get_reloc_size(iVar3)" (identifier "bfd_get_reloc_size") (argument_list "(iVar3)" (( "(") (identifier "iVar3") () ")")))) (; ";")) (expression_statement "iVar5 = puVar2[0xd];" (assignment_expression "iVar5 = puVar2[0xd]" (identifier "iVar5") (= "=") (subscript_expression "puVar2[0xd]" (identifier "puVar2") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (if_statement "if (iVar5 < iVar4) {\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }" (if "if") (parenthesized_expression "(iVar5 < iVar4)" (( "(") (binary_expression "iVar5 < iVar4" (identifier "iVar5") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n          uVar1 = *(undefined4 *)(iVar3 + 0x20);\n          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);\n          FUN_0002ac50(uVar6,uVar1,iVar5);\n          iVar5 = puVar2[0xd];\n        }" ({ "{") (expression_statement "uVar1 = *(undefined4 *)(iVar3 + 0x20);" (assignment_expression "uVar1 = *(undefined4 *)(iVar3 + 0x20)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined4 *)(iVar3 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x20)" (( "(") (binary_expression "iVar3 + 0x20" (identifier "iVar3") (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (expression_statement "uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5);" (assignment_expression "uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" (identifier "uVar6") (= "=") (call_expression "dcngettext(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" (identifier "dcngettext") (argument_list "(0,"%s relocations do not fit in %d byte",\n                             "%s relocations do not fit in %d bytes",iVar5,5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s relocations do not fit in %d byte"" (" """) (string_content "%s relocations do not fit in %d byte") (" """)) (, ",") (string_literal ""%s relocations do not fit in %d bytes"" (" """) (string_content "%s relocations do not fit in %d bytes") (" """)) (, ",") (identifier "iVar5") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0002ac50(uVar6,uVar1,iVar5);" (call_expression "FUN_0002ac50(uVar6,uVar1,iVar5)" (identifier "FUN_0002ac50") (argument_list "(uVar6,uVar1,iVar5)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar1") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "iVar5 = puVar2[0xd];" (assignment_expression "iVar5 = puVar2[0xd]" (identifier "iVar5") (= "=") (subscript_expression "puVar2[0xd]" (identifier "puVar2") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_000239b0(iVar5);" (assignment_expression "iVar5 = FUN_000239b0(iVar5)" (identifier "iVar5") (= "=") (call_expression "FUN_000239b0(iVar5)" (identifier "FUN_000239b0") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "FUN_0003fb00(iVar5,0,0,iVar4);" (call_expression "FUN_0003fb00(iVar5,0,0,iVar4)" (identifier "FUN_0003fb00") (argument_list "(iVar5,0,0,iVar4)" (( "(") (identifier "iVar5") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (identifier "iVar4") () ")"))) (; ";")) (expression_statement "FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);" (call_expression "FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe])" (identifier "FUN_0003dbd0") (argument_list "(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,\n                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe])" (( "(") (identifier "DAT_00070f24") (, ",") (binary_expression "iVar5 - (DAT_00070f24 + 0x4c)" (identifier "iVar5") (- "-") (parenthesized_expression "(DAT_00070f24 + 0x4c)" (( "(") (binary_expression "DAT_00070f24 + 0x4c" (identifier "DAT_00070f24") (+ "+") (number_literal "0x4c")) () ")"))) (, ",") (identifier "iVar4") (, ",") (binary_expression "puVar2 + 1" (identifier "puVar2") (+ "+") (number_literal "1")) (, ",") (pointer_expression "*(undefined4 *)(iVar3 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar3 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x10)" (( "(") (binary_expression "iVar3 + 0x10" (identifier "iVar3") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (subscript_expression "puVar2[0xe]" (identifier "puVar2") ([ "[") (number_literal "0xe") (] "]")) () ")"))) (; ";")) (} "}")))) (expression_statement "*puVar2 = DAT_00070ccc;" (assignment_expression "*puVar2 = DAT_00070ccc" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (identifier "DAT_00070ccc")) (; ";")) (expression_statement "DAT_00070ccc = puVar2;" (assignment_expression "DAT_00070ccc = puVar2" (identifier "DAT_00070ccc") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "puVar2 = DAT_00070cc8;" (assignment_expression "puVar2 = DAT_00070cc8" (identifier "puVar2") (= "=") (identifier "DAT_00070cc8")) (; ";")) (} "}"))) (expression_statement "DAT_00070cc4 = 0;" (assignment_expression "DAT_00070cc4 = 0" (identifier "DAT_00070cc4") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00070cc0 = 0;" (assignment_expression "DAT_00070cc0 = 0" (identifier "DAT_00070cc0") (= "=") (number_literal "0")) (; ";")) (expression_statement "DAT_00070cbc = DAT_00070cbc + 1;" (assignment_expression "DAT_00070cbc = DAT_00070cbc + 1" (identifier "DAT_00070cbc") (= "=") (binary_expression "DAT_00070cbc + 1" (identifier "DAT_00070cbc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_00070cb8 = 0;" (assignment_expression "DAT_00070cb8 = 0" (identifier "DAT_00070cb8") (= "=") (number_literal "0")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (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(int ignore)

{
  type_1 uVar1;
  type_2 *var_6;
  int var_8;
  int var_13;
  char *pcVar4;
  size_t nchars;
  type_3 aVar5;
  
  if ((var_1 != (type_4 *)0x0) && (var_2 != 0)) {
    var_3(var_1,now_seg);
    aVar5 = var_4();
    var_5(var_1,aVar5);
    var_6 = lpe_list;
    var_1->sy_frag = frag_now;
    while (var_6 != (type_2 *)0x0) {
      lpe_list = var_6->next;
      var_3(var_6->sym,now_seg);
      aVar5 = var_4();
      var_5(var_6->sym,aVar5);
      var_6->sym->sy_frag = frag_now;
      if (var_6->reloc == var_7) {
        if ((var_6->ex).field_0x10 == '\x06') {
          var_8 = (int)(var_6->ex).X_add_number;
          if (-*(int *)((int)&(var_6->ex).X_add_number + 4) < (int)(uint)(var_8 != 0)) {
            var_9(&generic_bignum,var_6->bignum,var_8 * 2);
          }
          else {
            generic_floating_point_number.low = (var_6->floatnum).low;
            generic_floating_point_number.high = (var_6->floatnum).high;
            generic_floating_point_number.leader = (var_6->floatnum).leader;
            generic_floating_point_number.exponent = (var_6->floatnum).exponent;
            generic_floating_point_number.sign = (var_6->floatnum).sign;
            generic_floating_point_number._17_3_ = *(type_5 *)&(var_6->floatnum).field_0x11;
          }
        }
        var_10(&var_6->ex,var_6->nbytes);
      }
      else {
        var_8 = var_11(stdoutput,var_6->reloc);
        var_13 = var_12(var_8);
        nchars = var_6->nbytes;
        if ((int)nchars < var_13) {
          uVar1 = *(type_1 *)(var_8 + 0x20);
          pcVar4 = (char *)var_14(0,"%s relocations do not fit in %d byte",
                                      "%s relocations do not fit in %d bytes",nchars,5);
          var_15(pcVar4,uVar1);
          nchars = var_6->nbytes;
        }
        pcVar4 = var_16(nchars);
        var_17(pcVar4,0,var_13);
        var_18(frag_now,(int)pcVar4 - (int)frag_now->fr_literal,var_13,&var_6->ex,
                    *(int *)(var_8 + 0x10),var_6->reloc);
      }
      var_6->next = lpe_free_list;
      lpe_free_list = var_6;
      var_6 = lpe_list;
    }
    generic_floating_point_number.sign = (char)generic_floating_point_number._16_4_;
    generic_floating_point_number._17_3_ = var_19(generic_floating_point_number._16_4_,1);
    lpe_list_tail = (type_2 *)0x0;
    var_1 = (type_4 *)0x0;
    var_20 = var_20 + 1;
    var_2 = 0;
    return;
  }
  return;
}


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

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

void MASKED(void)

{
  undefined4 uVar1;
  undefined4 *puVar2;
  int iVar3;
  int iVar4;
  int iVar5;
  undefined4 uVar6;
  undefined8 uVar7;
  
  if ((DAT_00070cc0 != 0) && (DAT_00070cb8 != 0)) {
    FUN_000374f0(DAT_00070cc0,DAT_00070dfc);
    uVar7 = FUN_00023cb0();
    FUN_00036e20(DAT_00070cc0,uVar7);
    puVar2 = DAT_00070cc8;
    *(int *)(DAT_00070cc0 + 0x24) = DAT_00070f24;
    while (puVar2 != (undefined4 *)0x0) {
      DAT_00070cc8 = (undefined4 *)*puVar2;
      FUN_000374f0(puVar2[0xf],DAT_00070dfc);
      uVar7 = FUN_00023cb0();
      FUN_00036e20(puVar2[0xf],uVar7);
      *(int *)(puVar2[0xf] + 0x24) = DAT_00070f24;
      if (puVar2[0xe] == 0x8ce) {
        if (*(char *)(puVar2 + 5) == '\x06') {
          if ((int)-puVar2[4] < (int)(uint)(puVar2[3] != 0)) {
            memcpy(&DAT_00070f80,puVar2 + 0xb,puVar2[3] * 2);
          }
          else {
            PTR_DAT_00068280 = (undefined *)puVar2[6];
            PTR_DAT_00068284 = (undefined *)puVar2[7];
            DAT_00068288 = puVar2[8];
            DAT_0006828c = puVar2[9];
            DAT_00068290 = puVar2[10];
          }
        }
        FUN_000301d0(puVar2 + 1,puVar2[0xd]);
      }
      else {
        iVar3 = bfd_reloc_type_lookup(DAT_00070fc4,puVar2[0xe]);
        iVar4 = bfd_get_reloc_size(iVar3);
        iVar5 = puVar2[0xd];
        if (iVar5 < iVar4) {
          uVar1 = *(undefined4 *)(iVar3 + 0x20);
          uVar6 = dcngettext(0,"%s relocations do not fit in %d byte",
                             "%s relocations do not fit in %d bytes",iVar5,5);
          FUN_0002ac50(uVar6,uVar1,iVar5);
          iVar5 = puVar2[0xd];
        }
        iVar5 = FUN_000239b0(iVar5);
        FUN_0003fb00(iVar5,0,0,iVar4);
        FUN_0003dbd0(DAT_00070f24,iVar5 - (DAT_00070f24 + 0x4c),iVar4,puVar2 + 1,
                     *(undefined4 *)(iVar3 + 0x10),puVar2[0xe]);
      }
      *puVar2 = DAT_00070ccc;
      DAT_00070ccc = puVar2;
      puVar2 = DAT_00070cc8;
    }
    DAT_00070cc4 = 0;
    DAT_00070cc0 = 0;
    DAT_00070cbc = DAT_00070cbc + 1;
    DAT_00070cb8 = 0;
    return;
  }
  return;
}

