
bfd_boolean lang_one_common(bfd_link_hash_entry *h,void *info)

{
  bfd_link_hash_common_entry *pbVar1;
  asection *paVar2;
  bfd_boolean bVar3;
  uint uVar4;
  char *pcVar5;
  ulong uVar6;
  char *fmt;
  uint *puVar7;
  uint *puVar8;
  ulong uVar9;
  uint uVar10;
  ulong uVar11;
  bool bVar12;
  char buf [50];
  
  if (h->field_0x18 == '\x05') {
    pbVar1 = (h->u).c.p;
    uVar10 = pbVar1->alignment_power;
    if (config.sort_common == sort_descending) {
                    /* WARNING: Load size is inaccurate */
      if (*info <= uVar10) goto LAB_0011883e;
    }
    else {
                    /* WARNING: Load size is inaccurate */
      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {
LAB_0011883e:
        uVar9 = (h->u).def.value;
        paVar2 = pbVar1->section;
        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)
                          (link_info.output_bfd,&link_info,h);
        if (bVar3 == 0) {
          pcVar5 = (h->root).string;
          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);
          einfo(fmt,pcVar5);
        }
        if (config.map_file != (FILE *)0x0) {
          if (header_printed_15626 == 0) {
            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);
            minfo(pcVar5);
            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);
            minfo(pcVar5);
            header_printed_15626 = 1;
          }
          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);
          if (pcVar5 == (char *)0x0) {
            minfo("%s",(h->root).string);
            uVar6 = strlen((h->root).string);
          }
          else {
            minfo("%s",pcVar5);
            uVar6 = strlen(pcVar5);
            free(pcVar5);
          }
          uVar11 = uVar6 & 0xffffffff;
          if (0x12 < (int)uVar6) {
            print_nl();
            uVar11 = 0;
          }
          do {
            print_space();
            uVar10 = (int)uVar11 + 1;
            uVar11 = (ulong)uVar10;
          } while (uVar10 != 0x14);
          minfo("0x");
          if (uVar9 < 0x100000000) {
            sprintf(buf,"%lx",uVar9);
          }
          else {
            sprintf(buf,"%016lx",uVar9);
          }
          minfo("%s",buf);
          puVar8 = (uint *)buf;
          do {
            puVar7 = puVar8;
            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;
            uVar10 = uVar4 & 0x80808080;
            puVar8 = puVar7 + 1;
          } while (uVar10 == 0);
          bVar12 = (uVar4 & 0x8080) == 0;
          if (bVar12) {
            uVar10 = uVar10 >> 0x10;
          }
          if (bVar12) {
            puVar8 = (uint *)((long)puVar7 + 6);
          }
          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);
          uVar6 = uVar9 & 0xffffffff;
          if (uVar9 < 0x10) {
            do {
              print_space();
              uVar10 = (int)uVar6 + 1;
              uVar6 = (ulong)uVar10;
            } while (uVar10 != 0x10);
          }
          minfo("%pB\n",paVar2->owner);
        }
        return 1;
      }
    }
  }
  return 1;
}



undefined8 FUN_00118810(long param_1,uint *param_2)

{
  long lVar1;
  int iVar2;
  uint uVar3;
  char *__s;
  ulong uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  uint *puVar7;
  uint *puVar8;
  ulong uVar9;
  uint uVar10;
  ulong uVar11;
  bool bVar12;
  uint local_68 [18];
  
  if (*(char *)(param_1 + 0x18) == '\x05') {
    uVar10 = **(uint **)(param_1 + 0x28);
    if (DAT_002a684c == 2) {
      if (*param_2 <= uVar10) goto LAB_0011883e;
    }
    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {
LAB_0011883e:
      uVar9 = *(ulong *)(param_1 + 0x30);
      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);
      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);
      if (iVar2 == 0) {
        uVar5 = *(undefined8 *)(param_1 + 8);
        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);
        FUN_00129410(uVar6,uVar5);
      }
      if (DAT_002a6878 != 0) {
        if (DAT_002a5200 == 0) {
          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);
          FUN_00129510(uVar5);
          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);
          FUN_00129510(uVar5);
          DAT_002a5200 = 1;
        }
        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);
        if (__s == (char *)0x0) {
          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));
          uVar4 = strlen(*(char **)(param_1 + 8));
        }
        else {
          FUN_00129510(&DAT_0016ffee,__s);
          uVar4 = strlen(__s);
          free(__s);
        }
        uVar11 = uVar4 & 0xffffffff;
        if (0x12 < (int)uVar4) {
          FUN_001284b0();
          uVar11 = 0;
        }
        do {
          FUN_00128490();
          uVar10 = (int)uVar11 + 1;
          uVar11 = (ulong)uVar10;
        } while (uVar10 != 0x14);
        FUN_00129510("0x");
        if (uVar9 < 0x100000000) {
          sprintf((char *)local_68,"%lx",uVar9);
        }
        else {
          sprintf((char *)local_68,"%016lx",uVar9);
        }
        FUN_00129510(&DAT_0016ffee,local_68);
        puVar8 = local_68;
        do {
          puVar7 = puVar8;
          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;
          uVar10 = uVar3 & 0x80808080;
          puVar8 = puVar7 + 1;
        } while (uVar10 == 0);
        bVar12 = (uVar3 & 0x8080) == 0;
        if (bVar12) {
          uVar10 = uVar10 >> 0x10;
        }
        if (bVar12) {
          puVar8 = (uint *)((long)puVar7 + 6);
        }
        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);
        uVar4 = uVar9 & 0xffffffff;
        if (uVar9 < 0x10) {
          do {
            FUN_00128490();
            uVar10 = (int)uVar4 + 1;
            uVar4 = (ulong)uVar10;
          } while (uVar10 != 0x10);
        }
        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));
      }
      return 1;
    }
  }
  return 1;
}


CMP byte ptr [RDI + 0x18],0x5
JZ 0x00118820
MOV EAX,0x1
RET
MOV RAX,qword ptr [RDI + 0x28]
MOV EDX,dword ptr [0x002a684c]
MOV ECX,dword ptr [RAX]
CMP EDX,0x2
JZ 0x00118a38
CMP EDX,0x1
JZ 0x001189b0
PUSH R13
LEA RSI,[0x2a66a0]
PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RDI
MOV RDX,RBX
SUB RSP,0x48
MOV R12,qword ptr [RDI + 0x30]
MOV RDI,qword ptr [0x002a66f0]
MOV RBP,qword ptr [RAX + 0x8]
MOV RAX,qword ptr [RDI + 0x8]
CALL qword ptr [RAX + 0x320]
TEST EAX,EAX
JZ 0x00118a60
CMP qword ptr [0x002a6878],0x0
JZ 0x0011899a
MOV EAX,dword ptr [0x002a5200]
TEST EAX,EAX
JZ 0x001189c0
MOV RSI,qword ptr [RBX + 0x8]
MOV RDI,qword ptr [0x002a66f0]
MOV EDX,0x3
CALL 0x0010dad0
MOV R13,RAX
TEST RAX,RAX
JZ 0x00118a10
MOV RSI,RAX
LEA RDI,[0x16ffee]
XOR EAX,EAX
CALL 0x00129510
MOV RDI,R13
CALL 0x0010d3b0
MOV RDI,R13
MOV EBX,EAX
CALL 0x0010de60
CMP EBX,0x12
JG 0x00118a90
NOP
CALL 0x00128490
ADD EBX,0x1
CMP EBX,0x14
JNZ 0x001188e0
XOR EAX,EAX
LEA RDI,[0x16ffae]
MOV RBX,RSP
CALL 0x00129510
MOV EAX,0xffffffff
MOV RDX,R12
CMP R12,RAX
JA 0x00118a48
LEA RSI,[0x1700d6]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x0010dc70
MOV RSI,RBX
LEA RDI,[0x16ffee]
XOR EAX,EAX
CALL 0x00129510
MOV RDX,RBX
MOV ECX,dword ptr [RDX]
ADD RDX,0x4
LEA EAX,[RCX + -0x1010101]
NOT ECX
AND EAX,ECX
AND EAX,0x80808080
JZ 0x00118934
MOV ECX,EAX
SHR ECX,0x10
TEST EAX,0x8080
CMOVZ EAX,ECX
LEA RCX,[RDX + 0x2]
CMOVZ RDX,RCX
MOV ESI,EAX
ADD SIL,AL
SBB RDX,0x3
SUB RDX,RBX
MOV EBX,EDX
CMP RDX,0xf
JA 0x00118985
NOP dword ptr [RAX]
CALL 0x00128490
ADD EBX,0x1
CMP EBX,0x10
JNZ 0x00118978
MOV RSI,qword ptr [RBP + 0xf0]
LEA RDI,[0x16fec4]
XOR EAX,EAX
CALL 0x00129510
ADD RSP,0x48
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
RET
CMP ECX,dword ptr [RSI]
JBE 0x0011883e
JMP 0x00118816
MOV EDX,0x5
LEA RSI,[0x1700ba]
XOR EDI,EDI
CALL 0x0010d380
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00129510
MOV EDX,0x5
LEA RSI,[0x170478]
XOR EDI,EDI
CALL 0x0010d380
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00129510
MOV dword ptr [0x002a5200],0x1
JMP 0x00118892
MOV RSI,qword ptr [RBX + 0x8]
LEA RDI,[0x16ffee]
XOR EAX,EAX
CALL 0x00129510
MOV RDI,qword ptr [RBX + 0x8]
CALL 0x0010d3b0
MOV EBX,EAX
JMP 0x001188d6
CMP ECX,dword ptr [RSI]
JNC 0x0011883e
JMP 0x00118816
LEA RSI,[0x1700da]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x0010dc70
JMP 0x00118920
MOV R13,qword ptr [RBX + 0x8]
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x170448]
CALL 0x0010d380
MOV RDI,RAX
MOV RSI,R13
XOR EAX,EAX
CALL 0x00129410
JMP 0x00118876
CALL 0x001284b0
XOR EBX,EBX
JMP 0x001188e0
(translation_unit "undefined8 FUN_00118810(long param_1,uint *param_2)\n\n{\n  long lVar1;\n  int iVar2;\n  uint uVar3;\n  char *__s;\n  ulong uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  uint local_68 [18];\n  \n  if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_00118810(long param_1,uint *param_2)\n\n{\n  long lVar1;\n  int iVar2;\n  uint uVar3;\n  char *__s;\n  ulong uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  uint local_68 [18];\n  \n  if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00118810(long param_1,uint *param_2)" identifier (parameter_list "(long param_1,uint *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  uint uVar3;\n  char *__s;\n  ulong uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  uint local_68 [18];\n  \n  if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }\n  return 1;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "uint local_68 [18];" type_identifier (array_declarator "local_68 [18]" identifier [ number_literal ]) ;) (if_statement "if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x18) == '\x05')" ( (binary_expression "*(char *)(param_1 + 0x18) == '\x05'" (pointer_expression "*(char *)(param_1 + 0x18)" * (cast_expression "(char *)(param_1 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }" { (expression_statement "uVar10 = **(uint **)(param_1 + 0x28);" (assignment_expression "uVar10 = **(uint **)(param_1 + 0x28)" identifier = (pointer_expression "**(uint **)(param_1 + 0x28)" * (pointer_expression "*(uint **)(param_1 + 0x28)" * (cast_expression "(uint **)(param_1 + 0x28)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))))) ;) (if_statement "if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" if (parenthesized_expression "(DAT_002a684c == 2)" ( (binary_expression "DAT_002a684c == 2" identifier == number_literal) )) (compound_statement "{\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }" { (if_statement "if (*param_2 <= uVar10) goto LAB_0011883e;" if (parenthesized_expression "(*param_2 <= uVar10)" ( (binary_expression "*param_2 <= uVar10" (pointer_expression "*param_2" * identifier) <= identifier) )) (goto_statement "goto LAB_0011883e;" goto statement_identifier ;)) }) (else_clause "else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" else (if_statement "if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" if (parenthesized_expression "((DAT_002a684c != 1) || (uVar10 <= *param_2))" ( (binary_expression "(DAT_002a684c != 1) || (uVar10 <= *param_2)" (parenthesized_expression "(DAT_002a684c != 1)" ( (binary_expression "DAT_002a684c != 1" identifier != number_literal) )) || (parenthesized_expression "(uVar10 <= *param_2)" ( (binary_expression "uVar10 <= *param_2" identifier <= (pointer_expression "*param_2" * identifier)) ))) )) (compound_statement "{\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" { (labeled_statement "LAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);" statement_identifier : (expression_statement "uVar9 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar9 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;)) (expression_statement "lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);" (assignment_expression "lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2)" identifier = (pointer_expression "*(long *)(*(uint **)(param_1 + 0x28) + 2)" * (cast_expression "(long *)(*(uint **)(param_1 + 0x28) + 2)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint **)(param_1 + 0x28) + 2)" ( (binary_expression "*(uint **)(param_1 + 0x28) + 2" (pointer_expression "*(uint **)(param_1 + 0x28)" * (cast_expression "(uint **)(param_1 + 0x28)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);" (assignment_expression "iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1)" identifier = (call_expression "(**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1)" (parenthesized_expression "(**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))" ( (pointer_expression "**(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" * (pointer_expression "*(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" * (cast_expression "(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_002a66f0 + 8) + 800)" ( (binary_expression "*(long *)(DAT_002a66f0 + 8) + 800" (pointer_expression "*(long *)(DAT_002a66f0 + 8)" * (cast_expression "(long *)(DAT_002a66f0 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002a66f0 + 8)" ( (binary_expression "DAT_002a66f0 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_002a66f0,&DAT_002a66a0,param_1)" ( identifier , (pointer_expression "&DAT_002a66a0" & identifier) , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }" { (expression_statement "uVar5 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" identifier (argument_list "(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" ( number_literal , (string_literal ""%F%P: could not define common symbol `%pT\': %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129410(uVar6,uVar5);" (call_expression "FUN_00129410(uVar6,uVar5)" identifier (argument_list "(uVar6,uVar5)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }" if (parenthesized_expression "(DAT_002a6878 != 0)" ( (binary_expression "DAT_002a6878 != 0" identifier != number_literal) )) (compound_statement "{\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }" { (if_statement "if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }" if (parenthesized_expression "(DAT_002a5200 == 0)" ( (binary_expression "DAT_002a5200 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }" { (expression_statement "uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);" (assignment_expression "uVar5 = dcgettext(0,"\nAllocating common symbols\n",5)" identifier = (call_expression "dcgettext(0,"\nAllocating common symbols\n",5)" identifier (argument_list "(0,"\nAllocating common symbols\n",5)" ( number_literal , (string_literal ""\nAllocating common symbols\n"" " escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129510(uVar5);" (call_expression "FUN_00129510(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5)" identifier = (call_expression "dcgettext(0,"Common symbol       size              file\n\n",5)" identifier (argument_list "(0,"Common symbol       size              file\n\n",5)" ( number_literal , (string_literal ""Common symbol       size              file\n\n"" " string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129510(uVar5);" (call_expression "FUN_00129510(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "DAT_002a5200 = 1;" (assignment_expression "DAT_002a5200 = 1" identifier = number_literal) ;) })) (expression_statement "__s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);" (assignment_expression "__s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" identifier = (cast_expression "(char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" identifier (argument_list "(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" ( identifier , (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" if (parenthesized_expression "(__s == (char *)0x0)" ( (binary_expression "__s == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }" { (expression_statement "FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));" (call_expression "FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8))" identifier (argument_list "(&DAT_0016ffee,*(undefined8 *)(param_1 + 8))" ( (pointer_expression "&DAT_0016ffee" & identifier) , (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "uVar4 = strlen(*(char **)(param_1 + 8));" (assignment_expression "uVar4 = strlen(*(char **)(param_1 + 8))" identifier = (call_expression "strlen(*(char **)(param_1 + 8))" identifier (argument_list "(*(char **)(param_1 + 8))" ( (pointer_expression "*(char **)(param_1 + 8)" * (cast_expression "(char **)(param_1 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) }) (else_clause "else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" else (compound_statement "{\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" { (expression_statement "FUN_00129510(&DAT_0016ffee,__s);" (call_expression "FUN_00129510(&DAT_0016ffee,__s)" identifier (argument_list "(&DAT_0016ffee,__s)" ( (pointer_expression "&DAT_0016ffee" & identifier) , identifier ))) ;) (expression_statement "uVar4 = strlen(__s);" (assignment_expression "uVar4 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) }))) (expression_statement "uVar11 = uVar4 & 0xffffffff;" (assignment_expression "uVar11 = uVar4 & 0xffffffff" identifier = (binary_expression "uVar4 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }" if (parenthesized_expression "(0x12 < (int)uVar4)" ( (binary_expression "0x12 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          FUN_001284b0();\n          uVar11 = 0;\n        }" { (expression_statement "FUN_001284b0();" (call_expression "FUN_001284b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (do_statement "do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);" do (compound_statement "{\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        }" { (expression_statement "FUN_00128490();" (call_expression "FUN_00128490()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = (int)uVar11 + 1;" (assignment_expression "uVar10 = (int)uVar11 + 1" identifier = (binary_expression "(int)uVar11 + 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar11 = (ulong)uVar10;" (assignment_expression "uVar11 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(uVar10 != 0x14)" ( (binary_expression "uVar10 != 0x14" identifier != number_literal) )) ;) (expression_statement "FUN_00129510("0x");" (call_expression "FUN_00129510("0x")" identifier (argument_list "("0x")" ( (string_literal ""0x"" " string_content ") ))) ;) (if_statement "if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" if (parenthesized_expression "(uVar9 < 0x100000000)" ( (binary_expression "uVar9 < 0x100000000" identifier < number_literal) )) (compound_statement "{\n          sprintf((char *)local_68,"%lx",uVar9);\n        }" { (expression_statement "sprintf((char *)local_68,"%lx",uVar9);" (call_expression "sprintf((char *)local_68,"%lx",uVar9)" identifier (argument_list "((char *)local_68,"%lx",uVar9)" ( (cast_expression "(char *)local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%lx"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" else (compound_statement "{\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" { (expression_statement "sprintf((char *)local_68,"%016lx",uVar9);" (call_expression "sprintf((char *)local_68,"%016lx",uVar9)" identifier (argument_list "((char *)local_68,"%016lx",uVar9)" ( (cast_expression "(char *)local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%016lx"" " string_content ") , identifier ))) ;) }))) (expression_statement "FUN_00129510(&DAT_0016ffee,local_68);" (call_expression "FUN_00129510(&DAT_0016ffee,local_68)" identifier (argument_list "(&DAT_0016ffee,local_68)" ( (pointer_expression "&DAT_0016ffee" & identifier) , identifier ))) ;) (expression_statement "puVar8 = local_68;" (assignment_expression "puVar8 = local_68" identifier = identifier) ;) (do_statement "do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);" do (compound_statement "{\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        }" { (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;" (assignment_expression "uVar3 = *puVar7 + 0xfefefeff & ~*puVar7" identifier = (binary_expression "*puVar7 + 0xfefefeff & ~*puVar7" (binary_expression "*puVar7 + 0xfefefeff" (pointer_expression "*puVar7" * identifier) + number_literal) & (unary_expression "~*puVar7" ~ (pointer_expression "*puVar7" * identifier)))) ;) (expression_statement "uVar10 = uVar3 & 0x80808080;" (assignment_expression "uVar10 = uVar3 & 0x80808080" identifier = (binary_expression "uVar3 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar8 = puVar7 + 1;" (assignment_expression "puVar8 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) ;) (expression_statement "bVar12 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar12 = (uVar3 & 0x8080) == 0" identifier = (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" ( (binary_expression "uVar3 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n          uVar10 = uVar10 >> 0x10;\n        }" { (expression_statement "uVar10 = uVar10 >> 0x10;" (assignment_expression "uVar10 = uVar10 >> 0x10" identifier = (binary_expression "uVar10 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }" { (expression_statement "puVar8 = (uint *)((long)puVar7 + 6);" (assignment_expression "puVar8 = (uint *)((long)puVar7 + 6)" identifier = (cast_expression "(uint *)((long)puVar7 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 6)" ( (binary_expression "(long)puVar7 + 6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);" (assignment_expression "uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" identifier = (binary_expression "(long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" ( (binary_expression "(-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68" (parenthesized_expression "(-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10))" ( (binary_expression "-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)" number_literal - (cast_expression "(ulong)CARRY1((byte)uVar10,(byte)uVar10)" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CARRY1((byte)uVar10,(byte)uVar10)" identifier (argument_list "((byte)uVar10,(byte)uVar10)" ( (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "uVar4 = uVar9 & 0xffffffff;" (assignment_expression "uVar4 = uVar9 & 0xffffffff" identifier = (binary_expression "uVar9 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }" if (parenthesized_expression "(uVar9 < 0x10)" ( (binary_expression "uVar9 < 0x10" identifier < number_literal) )) (compound_statement "{\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }" { (do_statement "do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);" do (compound_statement "{\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          }" { (expression_statement "FUN_00128490();" (call_expression "FUN_00128490()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = (int)uVar4 + 1;" (assignment_expression "uVar10 = (int)uVar4 + 1" identifier = (binary_expression "(int)uVar4 + 1" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar4 = (ulong)uVar10;" (assignment_expression "uVar4 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(uVar10 != 0x10)" ( (binary_expression "uVar10 != 0x10" identifier != number_literal) )) ;) })) (expression_statement "FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));" (call_expression "FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0))" identifier (argument_list "(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0))" ( (pointer_expression "&DAT_0016fec4" & identifier) , (pointer_expression "*(undefined8 *)(lVar1 + 0xf0)" * (cast_expression "(undefined8 *)(lVar1 + 0xf0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0xf0)" ( (binary_expression "lVar1 + 0xf0" identifier + number_literal) )))) ))) ;) })) (return_statement "return 1;" return number_literal ;) })))) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bfd_boolean lang_one_common(bfd_link_hash_entry *h,void *info)\n\n{\n  bfd_link_hash_common_entry *pbVar1;\n  asection *paVar2;\n  bfd_boolean bVar3;\n  uint uVar4;\n  char *pcVar5;\n  ulong uVar6;\n  char *fmt;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  char buf [50];\n  \n  if (h->field_0x18 == '\x05') {\n    pbVar1 = (h->u).c.p;\n    uVar10 = pbVar1->alignment_power;\n    if (config.sort_common == sort_descending) {\n                    /* WARNING: Load size is inaccurate */\n      if (*info <= uVar10) goto LAB_0011883e;\n    }\n    else {\n                    /* WARNING: Load size is inaccurate */\n      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }\n    }\n  }\n  return 1;\n}\n\n" (function_definition "bfd_boolean lang_one_common(bfd_link_hash_entry *h,void *info)\n\n{\n  bfd_link_hash_common_entry *pbVar1;\n  asection *paVar2;\n  bfd_boolean bVar3;\n  uint uVar4;\n  char *pcVar5;\n  ulong uVar6;\n  char *fmt;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  char buf [50];\n  \n  if (h->field_0x18 == '\x05') {\n    pbVar1 = (h->u).c.p;\n    uVar10 = pbVar1->alignment_power;\n    if (config.sort_common == sort_descending) {\n                    /* WARNING: Load size is inaccurate */\n      if (*info <= uVar10) goto LAB_0011883e;\n    }\n    else {\n                    /* WARNING: Load size is inaccurate */\n      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "lang_one_common(bfd_link_hash_entry *h,void *info)" identifier (parameter_list "(bfd_link_hash_entry *h,void *info)" ( (parameter_declaration "bfd_link_hash_entry *h" type_identifier (pointer_declarator "*h" * identifier)) , (parameter_declaration "void *info" primitive_type (pointer_declarator "*info" * identifier)) ))) (compound_statement "{\n  bfd_link_hash_common_entry *pbVar1;\n  asection *paVar2;\n  bfd_boolean bVar3;\n  uint uVar4;\n  char *pcVar5;\n  ulong uVar6;\n  char *fmt;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  char buf [50];\n  \n  if (h->field_0x18 == '\x05') {\n    pbVar1 = (h->u).c.p;\n    uVar10 = pbVar1->alignment_power;\n    if (config.sort_common == sort_descending) {\n                    /* WARNING: Load size is inaccurate */\n      if (*info <= uVar10) goto LAB_0011883e;\n    }\n    else {\n                    /* WARNING: Load size is inaccurate */\n      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }\n    }\n  }\n  return 1;\n}" { (declaration "bfd_link_hash_common_entry *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "asection *paVar2;" type_identifier (pointer_declarator "*paVar2" * identifier) ;) (declaration "bfd_boolean bVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "char *fmt;" primitive_type (pointer_declarator "*fmt" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "char buf [50];" primitive_type (array_declarator "buf [50]" identifier [ number_literal ]) ;) (if_statement "if (h->field_0x18 == '\x05') {\n    pbVar1 = (h->u).c.p;\n    uVar10 = pbVar1->alignment_power;\n    if (config.sort_common == sort_descending) {\n                    /* WARNING: Load size is inaccurate */\n      if (*info <= uVar10) goto LAB_0011883e;\n    }\n    else {\n                    /* WARNING: Load size is inaccurate */\n      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }\n    }\n  }" if (parenthesized_expression "(h->field_0x18 == '\x05')" ( (binary_expression "h->field_0x18 == '\x05'" (field_expression "h->field_0x18" identifier -> field_identifier) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n    pbVar1 = (h->u).c.p;\n    uVar10 = pbVar1->alignment_power;\n    if (config.sort_common == sort_descending) {\n                    /* WARNING: Load size is inaccurate */\n      if (*info <= uVar10) goto LAB_0011883e;\n    }\n    else {\n                    /* WARNING: Load size is inaccurate */\n      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }\n    }\n  }" { (expression_statement "pbVar1 = (h->u).c.p;" (assignment_expression "pbVar1 = (h->u).c.p" identifier = (field_expression "(h->u).c.p" (field_expression "(h->u).c" (parenthesized_expression "(h->u)" ( (field_expression "h->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;) (expression_statement "uVar10 = pbVar1->alignment_power;" (assignment_expression "uVar10 = pbVar1->alignment_power" identifier = (field_expression "pbVar1->alignment_power" identifier -> field_identifier)) ;) (if_statement "if (config.sort_common == sort_descending) {\n                    /* WARNING: Load size is inaccurate */\n      if (*info <= uVar10) goto LAB_0011883e;\n    }\n    else {\n                    /* WARNING: Load size is inaccurate */\n      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }\n    }" if (parenthesized_expression "(config.sort_common == sort_descending)" ( (binary_expression "config.sort_common == sort_descending" (field_expression "config.sort_common" identifier . field_identifier) == identifier) )) (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n      if (*info <= uVar10) goto LAB_0011883e;\n    }" { comment (if_statement "if (*info <= uVar10) goto LAB_0011883e;" if (parenthesized_expression "(*info <= uVar10)" ( (binary_expression "*info <= uVar10" (pointer_expression "*info" * identifier) <= identifier) )) (goto_statement "goto LAB_0011883e;" goto statement_identifier ;)) }) (else_clause "else {\n                    /* WARNING: Load size is inaccurate */\n      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }\n    }" else (compound_statement "{\n                    /* WARNING: Load size is inaccurate */\n      if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }\n    }" { comment (if_statement "if ((config.sort_common != sort_ascending) || (uVar10 <= *info)) {\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }" if (parenthesized_expression "((config.sort_common != sort_ascending) || (uVar10 <= *info))" ( (binary_expression "(config.sort_common != sort_ascending) || (uVar10 <= *info)" (parenthesized_expression "(config.sort_common != sort_ascending)" ( (binary_expression "config.sort_common != sort_ascending" (field_expression "config.sort_common" identifier . field_identifier) != identifier) )) || (parenthesized_expression "(uVar10 <= *info)" ( (binary_expression "uVar10 <= *info" identifier <= (pointer_expression "*info" * identifier)) ))) )) (compound_statement "{\nLAB_0011883e:\n        uVar9 = (h->u).def.value;\n        paVar2 = pbVar1->section;\n        bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);\n        if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }\n        if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }\n        return 1;\n      }" { (labeled_statement "LAB_0011883e:\n        uVar9 = (h->u).def.value;" statement_identifier : (expression_statement "uVar9 = (h->u).def.value;" (assignment_expression "uVar9 = (h->u).def.value" identifier = (field_expression "(h->u).def.value" (field_expression "(h->u).def" (parenthesized_expression "(h->u)" ( (field_expression "h->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) ;)) (expression_statement "paVar2 = pbVar1->section;" (assignment_expression "paVar2 = pbVar1->section" identifier = (field_expression "pbVar1->section" identifier -> field_identifier)) ;) (expression_statement "bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h);" (assignment_expression "bVar3 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h)" identifier = (call_expression "(*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)\n                          (link_info.output_bfd,&link_info,h)" (parenthesized_expression "(*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)" ( (pointer_expression "*(link_info.output_bfd)->xvec->_bfd_define_common_symbol" * (field_expression "(link_info.output_bfd)->xvec->_bfd_define_common_symbol" (field_expression "(link_info.output_bfd)->xvec" (parenthesized_expression "(link_info.output_bfd)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) )) -> field_identifier) -> field_identifier)) )) (argument_list "(link_info.output_bfd,&link_info,h)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (pointer_expression "&link_info" & identifier) , identifier )))) ;) (if_statement "if (bVar3 == 0) {\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar5 = (h->root).string;\n          fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n          einfo(fmt,pcVar5);\n        }" { (expression_statement "pcVar5 = (h->root).string;" (assignment_expression "pcVar5 = (h->root).string" identifier = (field_expression "(h->root).string" (parenthesized_expression "(h->root)" ( (field_expression "h->root" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);" (assignment_expression "fmt = (char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" identifier (argument_list "(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" ( number_literal , (string_literal ""%F%P: could not define common symbol `%pT\': %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "einfo(fmt,pcVar5);" (call_expression "einfo(fmt,pcVar5)" identifier (argument_list "(fmt,pcVar5)" ( identifier , identifier ))) ;) })) (if_statement "if (config.map_file != (FILE *)0x0) {\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }" if (parenthesized_expression "(config.map_file != (FILE *)0x0)" ( (binary_expression "config.map_file != (FILE *)0x0" (field_expression "config.map_file" identifier . field_identifier) != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }\n          pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);\n          if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }\n          uVar11 = uVar6 & 0xffffffff;\n          if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }\n          do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);\n          minfo("0x");\n          if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }\n          minfo("%s",buf);\n          puVar8 = (uint *)buf;\n          do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);\n          bVar12 = (uVar4 & 0x8080) == 0;\n          if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }\n          if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }\n          uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);\n          uVar6 = uVar9 & 0xffffffff;\n          if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }\n          minfo("%pB\n",paVar2->owner);\n        }" { (if_statement "if (header_printed_15626 == 0) {\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }" if (parenthesized_expression "(header_printed_15626 == 0)" ( (binary_expression "header_printed_15626 == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);\n            minfo(pcVar5);\n            pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);\n            minfo(pcVar5);\n            header_printed_15626 = 1;\n          }" { (expression_statement "pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"\nAllocating common symbols\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"\nAllocating common symbols\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"\nAllocating common symbols\n",5)" identifier (argument_list "(0,"\nAllocating common symbols\n",5)" ( number_literal , (string_literal ""\nAllocating common symbols\n"" " escape_sequence string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "minfo(pcVar5);" (call_expression "minfo(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5);" (assignment_expression "pcVar5 = (char *)dcgettext(0,"Common symbol       size              file\n\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Common symbol       size              file\n\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Common symbol       size              file\n\n",5)" identifier (argument_list "(0,"Common symbol       size              file\n\n",5)" ( number_literal , (string_literal ""Common symbol       size              file\n\n"" " string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "minfo(pcVar5);" (call_expression "minfo(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) (expression_statement "header_printed_15626 = 1;" (assignment_expression "header_printed_15626 = 1" identifier = number_literal) ;) })) (expression_statement "pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3);" (assignment_expression "pcVar5 = (char *)bfd_demangle(link_info.output_bfd,(h->root).string,3)" identifier = (cast_expression "(char *)bfd_demangle(link_info.output_bfd,(h->root).string,3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_demangle(link_info.output_bfd,(h->root).string,3)" identifier (argument_list "(link_info.output_bfd,(h->root).string,3)" ( (field_expression "link_info.output_bfd" identifier . field_identifier) , (field_expression "(h->root).string" (parenthesized_expression "(h->root)" ( (field_expression "h->root" identifier -> field_identifier) )) . field_identifier) , number_literal ))))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }\n          else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            minfo("%s",(h->root).string);\n            uVar6 = strlen((h->root).string);\n          }" { (expression_statement "minfo("%s",(h->root).string);" (call_expression "minfo("%s",(h->root).string)" identifier (argument_list "("%s",(h->root).string)" ( (string_literal ""%s"" " string_content ") , (field_expression "(h->root).string" (parenthesized_expression "(h->root)" ( (field_expression "h->root" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "uVar6 = strlen((h->root).string);" (assignment_expression "uVar6 = strlen((h->root).string)" identifier = (call_expression "strlen((h->root).string)" identifier (argument_list "((h->root).string)" ( (field_expression "(h->root).string" (parenthesized_expression "(h->root)" ( (field_expression "h->root" identifier -> field_identifier) )) . field_identifier) )))) ;) }) (else_clause "else {\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }" else (compound_statement "{\n            minfo("%s",pcVar5);\n            uVar6 = strlen(pcVar5);\n            free(pcVar5);\n          }" { (expression_statement "minfo("%s",pcVar5);" (call_expression "minfo("%s",pcVar5)" identifier (argument_list "("%s",pcVar5)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "uVar6 = strlen(pcVar5);" (assignment_expression "uVar6 = strlen(pcVar5)" identifier = (call_expression "strlen(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier )))) ;) (expression_statement "free(pcVar5);" (call_expression "free(pcVar5)" identifier (argument_list "(pcVar5)" ( identifier ))) ;) }))) (expression_statement "uVar11 = uVar6 & 0xffffffff;" (assignment_expression "uVar11 = uVar6 & 0xffffffff" identifier = (binary_expression "uVar6 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (0x12 < (int)uVar6) {\n            print_nl();\n            uVar11 = 0;\n          }" if (parenthesized_expression "(0x12 < (int)uVar6)" ( (binary_expression "0x12 < (int)uVar6" number_literal < (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            print_nl();\n            uVar11 = 0;\n          }" { (expression_statement "print_nl();" (call_expression "print_nl()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (do_statement "do {\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          } while (uVar10 != 0x14);" do (compound_statement "{\n            print_space();\n            uVar10 = (int)uVar11 + 1;\n            uVar11 = (ulong)uVar10;\n          }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = (int)uVar11 + 1;" (assignment_expression "uVar10 = (int)uVar11 + 1" identifier = (binary_expression "(int)uVar11 + 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar11 = (ulong)uVar10;" (assignment_expression "uVar11 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(uVar10 != 0x14)" ( (binary_expression "uVar10 != 0x14" identifier != number_literal) )) ;) (expression_statement "minfo("0x");" (call_expression "minfo("0x")" identifier (argument_list "("0x")" ( (string_literal ""0x"" " string_content ") ))) ;) (if_statement "if (uVar9 < 0x100000000) {\n            sprintf(buf,"%lx",uVar9);\n          }\n          else {\n            sprintf(buf,"%016lx",uVar9);\n          }" if (parenthesized_expression "(uVar9 < 0x100000000)" ( (binary_expression "uVar9 < 0x100000000" identifier < number_literal) )) (compound_statement "{\n            sprintf(buf,"%lx",uVar9);\n          }" { (expression_statement "sprintf(buf,"%lx",uVar9);" (call_expression "sprintf(buf,"%lx",uVar9)" identifier (argument_list "(buf,"%lx",uVar9)" ( identifier , (string_literal ""%lx"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n            sprintf(buf,"%016lx",uVar9);\n          }" else (compound_statement "{\n            sprintf(buf,"%016lx",uVar9);\n          }" { (expression_statement "sprintf(buf,"%016lx",uVar9);" (call_expression "sprintf(buf,"%016lx",uVar9)" identifier (argument_list "(buf,"%016lx",uVar9)" ( identifier , (string_literal ""%016lx"" " string_content ") , identifier ))) ;) }))) (expression_statement "minfo("%s",buf);" (call_expression "minfo("%s",buf)" identifier (argument_list "("%s",buf)" ( (string_literal ""%s"" " string_content ") , identifier ))) ;) (expression_statement "puVar8 = (uint *)buf;" (assignment_expression "puVar8 = (uint *)buf" identifier = (cast_expression "(uint *)buf" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          } while (uVar10 == 0);" do (compound_statement "{\n            puVar7 = puVar8;\n            uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;\n            uVar10 = uVar4 & 0x80808080;\n            puVar8 = puVar7 + 1;\n          }" { (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "uVar4 = *puVar7 + 0xfefefeff & ~*puVar7;" (assignment_expression "uVar4 = *puVar7 + 0xfefefeff & ~*puVar7" identifier = (binary_expression "*puVar7 + 0xfefefeff & ~*puVar7" (binary_expression "*puVar7 + 0xfefefeff" (pointer_expression "*puVar7" * identifier) + number_literal) & (unary_expression "~*puVar7" ~ (pointer_expression "*puVar7" * identifier)))) ;) (expression_statement "uVar10 = uVar4 & 0x80808080;" (assignment_expression "uVar10 = uVar4 & 0x80808080" identifier = (binary_expression "uVar4 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar8 = puVar7 + 1;" (assignment_expression "puVar8 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) ;) (expression_statement "bVar12 = (uVar4 & 0x8080) == 0;" (assignment_expression "bVar12 = (uVar4 & 0x8080) == 0" identifier = (binary_expression "(uVar4 & 0x8080) == 0" (parenthesized_expression "(uVar4 & 0x8080)" ( (binary_expression "uVar4 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar12) {\n            uVar10 = uVar10 >> 0x10;\n          }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n            uVar10 = uVar10 >> 0x10;\n          }" { (expression_statement "uVar10 = uVar10 >> 0x10;" (assignment_expression "uVar10 = uVar10 >> 0x10" identifier = (binary_expression "uVar10 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar12) {\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n            puVar8 = (uint *)((long)puVar7 + 6);\n          }" { (expression_statement "puVar8 = (uint *)((long)puVar7 + 6);" (assignment_expression "puVar8 = (uint *)((long)puVar7 + 6)" identifier = (cast_expression "(uint *)((long)puVar7 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 6)" ( (binary_expression "(long)puVar7 + 6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf);" (assignment_expression "uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf)" identifier = (binary_expression "(long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf)" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf)" ( (binary_expression "(-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)buf" (parenthesized_expression "(-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10))" ( (binary_expression "-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)" number_literal - (cast_expression "(ulong)CARRY1((byte)uVar10,(byte)uVar10)" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CARRY1((byte)uVar10,(byte)uVar10)" identifier (argument_list "((byte)uVar10,(byte)uVar10)" ( (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(long)buf" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "uVar6 = uVar9 & 0xffffffff;" (assignment_expression "uVar6 = uVar9 & 0xffffffff" identifier = (binary_expression "uVar9 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (uVar9 < 0x10) {\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }" if (parenthesized_expression "(uVar9 < 0x10)" ( (binary_expression "uVar9 < 0x10" identifier < number_literal) )) (compound_statement "{\n            do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);\n          }" { (do_statement "do {\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            } while (uVar10 != 0x10);" do (compound_statement "{\n              print_space();\n              uVar10 = (int)uVar6 + 1;\n              uVar6 = (ulong)uVar10;\n            }" { (expression_statement "print_space();" (call_expression "print_space()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = (int)uVar6 + 1;" (assignment_expression "uVar10 = (int)uVar6 + 1" identifier = (binary_expression "(int)uVar6 + 1" (cast_expression "(int)uVar6" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar6 = (ulong)uVar10;" (assignment_expression "uVar6 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(uVar10 != 0x10)" ( (binary_expression "uVar10 != 0x10" identifier != number_literal) )) ;) })) (expression_statement "minfo("%pB\n",paVar2->owner);" (call_expression "minfo("%pB\n",paVar2->owner)" identifier (argument_list "("%pB\n",paVar2->owner)" ( (string_literal ""%pB\n"" " string_content escape_sequence ") , (field_expression "paVar2->owner" identifier -> field_identifier) ))) ;) })) (return_statement "return 1;" return number_literal ;) })) }))) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined8 FUN_00118810(long param_1,uint *param_2)\n\n{\n  long lVar1;\n  int iVar2;\n  uint uVar3;\n  char *__s;\n  ulong uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  uint local_68 [18];\n  \n  if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }\n  return 1;\n}\n\n" (function_definition "undefined8 FUN_00118810(long param_1,uint *param_2)\n\n{\n  long lVar1;\n  int iVar2;\n  uint uVar3;\n  char *__s;\n  ulong uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  uint local_68 [18];\n  \n  if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "FUN_00118810(long param_1,uint *param_2)" identifier (parameter_list "(long param_1,uint *param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "uint *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  uint uVar3;\n  char *__s;\n  ulong uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  uint local_68 [18];\n  \n  if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }\n  return 1;\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "char *__s;" primitive_type (pointer_declarator "*__s" * identifier) ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined8 uVar6;" type_identifier identifier ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "bool bVar12;" primitive_type identifier ;) (declaration "uint local_68 [18];" type_identifier (array_declarator "local_68 [18]" identifier [ number_literal ]) ;) (if_statement "if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x18) == '\x05')" ( (binary_expression "*(char *)(param_1 + 0x18) == '\x05'" (pointer_expression "*(char *)(param_1 + 0x18)" * (cast_expression "(char *)(param_1 + 0x18)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) )))) == (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }" { (expression_statement "uVar10 = **(uint **)(param_1 + 0x28);" (assignment_expression "uVar10 = **(uint **)(param_1 + 0x28)" identifier = (pointer_expression "**(uint **)(param_1 + 0x28)" * (pointer_expression "*(uint **)(param_1 + 0x28)" * (cast_expression "(uint **)(param_1 + 0x28)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))))) ;) (if_statement "if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" if (parenthesized_expression "(DAT_002a684c == 2)" ( (binary_expression "DAT_002a684c == 2" identifier == number_literal) )) (compound_statement "{\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }" { (if_statement "if (*param_2 <= uVar10) goto LAB_0011883e;" if (parenthesized_expression "(*param_2 <= uVar10)" ( (binary_expression "*param_2 <= uVar10" (pointer_expression "*param_2" * identifier) <= identifier) )) (goto_statement "goto LAB_0011883e;" goto statement_identifier ;)) }) (else_clause "else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" else (if_statement "if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" if (parenthesized_expression "((DAT_002a684c != 1) || (uVar10 <= *param_2))" ( (binary_expression "(DAT_002a684c != 1) || (uVar10 <= *param_2)" (parenthesized_expression "(DAT_002a684c != 1)" ( (binary_expression "DAT_002a684c != 1" identifier != number_literal) )) || (parenthesized_expression "(uVar10 <= *param_2)" ( (binary_expression "uVar10 <= *param_2" identifier <= (pointer_expression "*param_2" * identifier)) ))) )) (compound_statement "{\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" { (labeled_statement "LAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);" statement_identifier : (expression_statement "uVar9 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar9 = *(ulong *)(param_1 + 0x30)" identifier = (pointer_expression "*(ulong *)(param_1 + 0x30)" * (cast_expression "(ulong *)(param_1 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))) ;)) (expression_statement "lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);" (assignment_expression "lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2)" identifier = (pointer_expression "*(long *)(*(uint **)(param_1 + 0x28) + 2)" * (cast_expression "(long *)(*(uint **)(param_1 + 0x28) + 2)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(uint **)(param_1 + 0x28) + 2)" ( (binary_expression "*(uint **)(param_1 + 0x28) + 2" (pointer_expression "*(uint **)(param_1 + 0x28)" * (cast_expression "(uint **)(param_1 + 0x28)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);" (assignment_expression "iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1)" identifier = (call_expression "(**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1)" (parenthesized_expression "(**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))" ( (pointer_expression "**(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" * (pointer_expression "*(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" * (cast_expression "(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_002a66f0 + 8) + 800)" ( (binary_expression "*(long *)(DAT_002a66f0 + 8) + 800" (pointer_expression "*(long *)(DAT_002a66f0 + 8)" * (cast_expression "(long *)(DAT_002a66f0 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_002a66f0 + 8)" ( (binary_expression "DAT_002a66f0 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(DAT_002a66f0,&DAT_002a66a0,param_1)" ( identifier , (pointer_expression "&DAT_002a66a0" & identifier) , identifier )))) ;) (if_statement "if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }" { (expression_statement "uVar5 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" identifier = (call_expression "dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" identifier (argument_list "(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" ( number_literal , (string_literal ""%F%P: could not define common symbol `%pT\': %E\n"" " string_content escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129410(uVar6,uVar5);" (call_expression "FUN_00129410(uVar6,uVar5)" identifier (argument_list "(uVar6,uVar5)" ( identifier , identifier ))) ;) })) (if_statement "if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }" if (parenthesized_expression "(DAT_002a6878 != 0)" ( (binary_expression "DAT_002a6878 != 0" identifier != number_literal) )) (compound_statement "{\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }" { (if_statement "if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }" if (parenthesized_expression "(DAT_002a5200 == 0)" ( (binary_expression "DAT_002a5200 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }" { (expression_statement "uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);" (assignment_expression "uVar5 = dcgettext(0,"\nAllocating common symbols\n",5)" identifier = (call_expression "dcgettext(0,"\nAllocating common symbols\n",5)" identifier (argument_list "(0,"\nAllocating common symbols\n",5)" ( number_literal , (string_literal ""\nAllocating common symbols\n"" " escape_sequence string_content escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129510(uVar5);" (call_expression "FUN_00129510(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5)" identifier = (call_expression "dcgettext(0,"Common symbol       size              file\n\n",5)" identifier (argument_list "(0,"Common symbol       size              file\n\n",5)" ( number_literal , (string_literal ""Common symbol       size              file\n\n"" " string_content escape_sequence escape_sequence ") , number_literal )))) ;) (expression_statement "FUN_00129510(uVar5);" (call_expression "FUN_00129510(uVar5)" identifier (argument_list "(uVar5)" ( identifier ))) ;) (expression_statement "DAT_002a5200 = 1;" (assignment_expression "DAT_002a5200 = 1" identifier = number_literal) ;) })) (expression_statement "__s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);" (assignment_expression "__s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" identifier = (cast_expression "(char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" identifier (argument_list "(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" ( identifier , (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" if (parenthesized_expression "(__s == (char *)0x0)" ( (binary_expression "__s == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }" { (expression_statement "FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));" (call_expression "FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8))" identifier (argument_list "(&DAT_0016ffee,*(undefined8 *)(param_1 + 8))" ( (pointer_expression "&DAT_0016ffee" & identifier) , (pointer_expression "*(undefined8 *)(param_1 + 8)" * (cast_expression "(undefined8 *)(param_1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) (expression_statement "uVar4 = strlen(*(char **)(param_1 + 8));" (assignment_expression "uVar4 = strlen(*(char **)(param_1 + 8))" identifier = (call_expression "strlen(*(char **)(param_1 + 8))" identifier (argument_list "(*(char **)(param_1 + 8))" ( (pointer_expression "*(char **)(param_1 + 8)" * (cast_expression "(char **)(param_1 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) )))) ;) }) (else_clause "else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" else (compound_statement "{\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" { (expression_statement "FUN_00129510(&DAT_0016ffee,__s);" (call_expression "FUN_00129510(&DAT_0016ffee,__s)" identifier (argument_list "(&DAT_0016ffee,__s)" ( (pointer_expression "&DAT_0016ffee" & identifier) , identifier ))) ;) (expression_statement "uVar4 = strlen(__s);" (assignment_expression "uVar4 = strlen(__s)" identifier = (call_expression "strlen(__s)" identifier (argument_list "(__s)" ( identifier )))) ;) (expression_statement "free(__s);" (call_expression "free(__s)" identifier (argument_list "(__s)" ( identifier ))) ;) }))) (expression_statement "uVar11 = uVar4 & 0xffffffff;" (assignment_expression "uVar11 = uVar4 & 0xffffffff" identifier = (binary_expression "uVar4 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }" if (parenthesized_expression "(0x12 < (int)uVar4)" ( (binary_expression "0x12 < (int)uVar4" number_literal < (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          FUN_001284b0();\n          uVar11 = 0;\n        }" { (expression_statement "FUN_001284b0();" (call_expression "FUN_001284b0()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) })) (do_statement "do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);" do (compound_statement "{\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        }" { (expression_statement "FUN_00128490();" (call_expression "FUN_00128490()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = (int)uVar11 + 1;" (assignment_expression "uVar10 = (int)uVar11 + 1" identifier = (binary_expression "(int)uVar11 + 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar11 = (ulong)uVar10;" (assignment_expression "uVar11 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(uVar10 != 0x14)" ( (binary_expression "uVar10 != 0x14" identifier != number_literal) )) ;) (expression_statement "FUN_00129510("0x");" (call_expression "FUN_00129510("0x")" identifier (argument_list "("0x")" ( (string_literal ""0x"" " string_content ") ))) ;) (if_statement "if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" if (parenthesized_expression "(uVar9 < 0x100000000)" ( (binary_expression "uVar9 < 0x100000000" identifier < number_literal) )) (compound_statement "{\n          sprintf((char *)local_68,"%lx",uVar9);\n        }" { (expression_statement "sprintf((char *)local_68,"%lx",uVar9);" (call_expression "sprintf((char *)local_68,"%lx",uVar9)" identifier (argument_list "((char *)local_68,"%lx",uVar9)" ( (cast_expression "(char *)local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%lx"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" else (compound_statement "{\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" { (expression_statement "sprintf((char *)local_68,"%016lx",uVar9);" (call_expression "sprintf((char *)local_68,"%016lx",uVar9)" identifier (argument_list "((char *)local_68,"%016lx",uVar9)" ( (cast_expression "(char *)local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""%016lx"" " string_content ") , identifier ))) ;) }))) (expression_statement "FUN_00129510(&DAT_0016ffee,local_68);" (call_expression "FUN_00129510(&DAT_0016ffee,local_68)" identifier (argument_list "(&DAT_0016ffee,local_68)" ( (pointer_expression "&DAT_0016ffee" & identifier) , identifier ))) ;) (expression_statement "puVar8 = local_68;" (assignment_expression "puVar8 = local_68" identifier = identifier) ;) (do_statement "do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);" do (compound_statement "{\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        }" { (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" identifier = identifier) ;) (expression_statement "uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;" (assignment_expression "uVar3 = *puVar7 + 0xfefefeff & ~*puVar7" identifier = (binary_expression "*puVar7 + 0xfefefeff & ~*puVar7" (binary_expression "*puVar7 + 0xfefefeff" (pointer_expression "*puVar7" * identifier) + number_literal) & (unary_expression "~*puVar7" ~ (pointer_expression "*puVar7" * identifier)))) ;) (expression_statement "uVar10 = uVar3 & 0x80808080;" (assignment_expression "uVar10 = uVar3 & 0x80808080" identifier = (binary_expression "uVar3 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar8 = puVar7 + 1;" (assignment_expression "puVar8 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) ;) (expression_statement "bVar12 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar12 = (uVar3 & 0x8080) == 0" identifier = (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" ( (binary_expression "uVar3 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n          uVar10 = uVar10 >> 0x10;\n        }" { (expression_statement "uVar10 = uVar10 >> 0x10;" (assignment_expression "uVar10 = uVar10 >> 0x10" identifier = (binary_expression "uVar10 >> 0x10" identifier >> number_literal)) ;) })) (if_statement "if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }" if (parenthesized_expression "(bVar12)" ( identifier )) (compound_statement "{\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }" { (expression_statement "puVar8 = (uint *)((long)puVar7 + 6);" (assignment_expression "puVar8 = (uint *)((long)puVar7 + 6)" identifier = (cast_expression "(uint *)((long)puVar7 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar7 + 6)" ( (binary_expression "(long)puVar7 + 6" (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);" (assignment_expression "uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" identifier = (binary_expression "(long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (parenthesized_expression "((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" ( (binary_expression "(-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68" (parenthesized_expression "(-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10))" ( (binary_expression "-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)" number_literal - (cast_expression "(ulong)CARRY1((byte)uVar10,(byte)uVar10)" ( (type_descriptor "ulong" type_identifier) ) (call_expression "CARRY1((byte)uVar10,(byte)uVar10)" identifier (argument_list "((byte)uVar10,(byte)uVar10)" ( (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(long)local_68" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "uVar4 = uVar9 & 0xffffffff;" (assignment_expression "uVar4 = uVar9 & 0xffffffff" identifier = (binary_expression "uVar9 & 0xffffffff" identifier & number_literal)) ;) (if_statement "if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }" if (parenthesized_expression "(uVar9 < 0x10)" ( (binary_expression "uVar9 < 0x10" identifier < number_literal) )) (compound_statement "{\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }" { (do_statement "do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);" do (compound_statement "{\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          }" { (expression_statement "FUN_00128490();" (call_expression "FUN_00128490()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar10 = (int)uVar4 + 1;" (assignment_expression "uVar10 = (int)uVar4 + 1" identifier = (binary_expression "(int)uVar4 + 1" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar4 = (ulong)uVar10;" (assignment_expression "uVar4 = (ulong)uVar10" identifier = (cast_expression "(ulong)uVar10" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) while (parenthesized_expression "(uVar10 != 0x10)" ( (binary_expression "uVar10 != 0x10" identifier != number_literal) )) ;) })) (expression_statement "FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));" (call_expression "FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0))" identifier (argument_list "(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0))" ( (pointer_expression "&DAT_0016fec4" & identifier) , (pointer_expression "*(undefined8 *)(lVar1 + 0xf0)" * (cast_expression "(undefined8 *)(lVar1 + 0xf0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + 0xf0)" ( (binary_expression "lVar1 + 0xf0" identifier + number_literal) )))) ))) ;) })) (return_statement "return 1;" return number_literal ;) })))) })) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) <= IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * IDENT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (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 = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence escape_sequence ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , IDENT ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & (unary_expression ~ (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (return_statement return LIT ;) })))) })) (return_statement return LIT ;) })))
(function_definition "undefined8 FUN_00118810(long param_1,uint *param_2)\n\n{\n  long lVar1;\n  int iVar2;\n  uint uVar3;\n  char *__s;\n  ulong uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  uint local_68 [18];\n  \n  if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }\n  return 1;\n}" (type_identifier "undefined8") (function_declarator "FUN_00118810(long param_1,uint *param_2)" (identifier "FUN_00118810") (parameter_list "(long param_1,uint *param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "uint *param_2" (type_identifier "uint") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  uint uVar3;\n  char *__s;\n  ulong uVar4;\n  undefined8 uVar5;\n  undefined8 uVar6;\n  uint *puVar7;\n  uint *puVar8;\n  ulong uVar9;\n  uint uVar10;\n  ulong uVar11;\n  bool bVar12;\n  uint local_68 [18];\n  \n  if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }\n  return 1;\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "char *__s;" (primitive_type "char") (pointer_declarator "*__s" (* "*") (identifier "__s")) (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "undefined8 uVar6;" (type_identifier "undefined8") (identifier "uVar6") (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "uint *puVar8;" (type_identifier "uint") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "bool bVar12;" (primitive_type "bool") (identifier "bVar12") (; ";")) (declaration "uint local_68 [18];" (type_identifier "uint") (array_declarator "local_68 [18]" (identifier "local_68") ([ "[") (number_literal "18") (] "]")) (; ";")) (if_statement "if (*(char *)(param_1 + 0x18) == '\x05') {\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x18) == '\x05')" (( "(") (binary_expression "*(char *)(param_1 + 0x18) == '\x05'" (pointer_expression "*(char *)(param_1 + 0x18)" (* "*") (cast_expression "(char *)(param_1 + 0x18)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")")))) (== "==") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\n    uVar10 = **(uint **)(param_1 + 0x28);\n    if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }\n  }" ({ "{") (expression_statement "uVar10 = **(uint **)(param_1 + 0x28);" (assignment_expression "uVar10 = **(uint **)(param_1 + 0x28)" (identifier "uVar10") (= "=") (pointer_expression "**(uint **)(param_1 + 0x28)" (* "*") (pointer_expression "*(uint **)(param_1 + 0x28)" (* "*") (cast_expression "(uint **)(param_1 + 0x28)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))))) (; ";")) (if_statement "if (DAT_002a684c == 2) {\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }\n    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" (if "if") (parenthesized_expression "(DAT_002a684c == 2)" (( "(") (binary_expression "DAT_002a684c == 2" (identifier "DAT_002a684c") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      if (*param_2 <= uVar10) goto LAB_0011883e;\n    }" ({ "{") (if_statement "if (*param_2 <= uVar10) goto LAB_0011883e;" (if "if") (parenthesized_expression "(*param_2 <= uVar10)" (( "(") (binary_expression "*param_2 <= uVar10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (<= "<=") (identifier "uVar10")) () ")")) (goto_statement "goto LAB_0011883e;" (goto "goto") (statement_identifier "LAB_0011883e") (; ";"))) (} "}")) (else_clause "else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" (else "else") (if_statement "if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" (if "if") (parenthesized_expression "((DAT_002a684c != 1) || (uVar10 <= *param_2))" (( "(") (binary_expression "(DAT_002a684c != 1) || (uVar10 <= *param_2)" (parenthesized_expression "(DAT_002a684c != 1)" (( "(") (binary_expression "DAT_002a684c != 1" (identifier "DAT_002a684c") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar10 <= *param_2)" (( "(") (binary_expression "uVar10 <= *param_2" (identifier "uVar10") (<= "<=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) () ")"))) () ")")) (compound_statement "{\nLAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);\n      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);\n      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);\n      if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }\n      if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }\n      return 1;\n    }" ({ "{") (labeled_statement "LAB_0011883e:\n      uVar9 = *(ulong *)(param_1 + 0x30);" (statement_identifier "LAB_0011883e") (: ":") (expression_statement "uVar9 = *(ulong *)(param_1 + 0x30);" (assignment_expression "uVar9 = *(ulong *)(param_1 + 0x30)" (identifier "uVar9") (= "=") (pointer_expression "*(ulong *)(param_1 + 0x30)" (* "*") (cast_expression "(ulong *)(param_1 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))) (; ";"))) (expression_statement "lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);" (assignment_expression "lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(*(uint **)(param_1 + 0x28) + 2)" (* "*") (cast_expression "(long *)(*(uint **)(param_1 + 0x28) + 2)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(uint **)(param_1 + 0x28) + 2)" (( "(") (binary_expression "*(uint **)(param_1 + 0x28) + 2" (pointer_expression "*(uint **)(param_1 + 0x28)" (* "*") (cast_expression "(uint **)(param_1 + 0x28)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);" (assignment_expression "iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1)" (identifier "iVar2") (= "=") (call_expression "(**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1)" (parenthesized_expression "(**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))" (( "(") (pointer_expression "**(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" (* "*") (pointer_expression "*(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" (* "*") (cast_expression "(code **)(*(long *)(DAT_002a66f0 + 8) + 800)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(DAT_002a66f0 + 8) + 800)" (( "(") (binary_expression "*(long *)(DAT_002a66f0 + 8) + 800" (pointer_expression "*(long *)(DAT_002a66f0 + 8)" (* "*") (cast_expression "(long *)(DAT_002a66f0 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_002a66f0 + 8)" (( "(") (binary_expression "DAT_002a66f0 + 8" (identifier "DAT_002a66f0") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "800")) () ")"))))) () ")")) (argument_list "(DAT_002a66f0,&DAT_002a66a0,param_1)" (( "(") (identifier "DAT_002a66f0") (, ",") (pointer_expression "&DAT_002a66a0" (& "&") (identifier "DAT_002a66a0")) (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar5 = *(undefined8 *)(param_1 + 8);\n        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);\n        FUN_00129410(uVar6,uVar5);\n      }" ({ "{") (expression_statement "uVar5 = *(undefined8 *)(param_1 + 8);" (assignment_expression "uVar5 = *(undefined8 *)(param_1 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 8)" (* "*") (cast_expression "(undefined8 *)(param_1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);" (assignment_expression "uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" (identifier "uVar6") (= "=") (call_expression "dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" (identifier "dcgettext") (argument_list "(0,"%F%P: could not define common symbol `%pT\': %E\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%F%P: could not define common symbol `%pT\': %E\n"" (" """) (string_content "%F%P: could not define common symbol `%pT") (escape_sequence "\'") (string_content ": %E") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00129410(uVar6,uVar5);" (call_expression "FUN_00129410(uVar6,uVar5)" (identifier "FUN_00129410") (argument_list "(uVar6,uVar5)" (( "(") (identifier "uVar6") (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_002a6878 != 0) {\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }" (if "if") (parenthesized_expression "(DAT_002a6878 != 0)" (( "(") (binary_expression "DAT_002a6878 != 0" (identifier "DAT_002a6878") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }\n        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);\n        if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }\n        uVar11 = uVar4 & 0xffffffff;\n        if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }\n        do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);\n        FUN_00129510("0x");\n        if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }\n        FUN_00129510(&DAT_0016ffee,local_68);\n        puVar8 = local_68;\n        do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);\n        bVar12 = (uVar3 & 0x8080) == 0;\n        if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }\n        if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }\n        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);\n        uVar4 = uVar9 & 0xffffffff;\n        if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }\n        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));\n      }" ({ "{") (if_statement "if (DAT_002a5200 == 0) {\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }" (if "if") (parenthesized_expression "(DAT_002a5200 == 0)" (( "(") (binary_expression "DAT_002a5200 == 0" (identifier "DAT_002a5200") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);\n          FUN_00129510(uVar5);\n          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);\n          FUN_00129510(uVar5);\n          DAT_002a5200 = 1;\n        }" ({ "{") (expression_statement "uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);" (assignment_expression "uVar5 = dcgettext(0,"\nAllocating common symbols\n",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"\nAllocating common symbols\n",5)" (identifier "dcgettext") (argument_list "(0,"\nAllocating common symbols\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""\nAllocating common symbols\n"" (" """) (escape_sequence "\n") (string_content "Allocating common symbols") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00129510(uVar5);" (call_expression "FUN_00129510(uVar5)" (identifier "FUN_00129510") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);" (assignment_expression "uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5)" (identifier "uVar5") (= "=") (call_expression "dcgettext(0,"Common symbol       size              file\n\n",5)" (identifier "dcgettext") (argument_list "(0,"Common symbol       size              file\n\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Common symbol       size              file\n\n"" (" """) (string_content "Common symbol       size              file") (escape_sequence "\n") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00129510(uVar5);" (call_expression "FUN_00129510(uVar5)" (identifier "FUN_00129510") (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "DAT_002a5200 = 1;" (assignment_expression "DAT_002a5200 = 1" (identifier "DAT_002a5200") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "__s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);" (assignment_expression "__s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" (identifier "__s") (= "=") (cast_expression "(char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" (identifier "bfd_demangle") (argument_list "(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3)" (( "(") (identifier "DAT_002a66f0") (, ",") (pointer_expression "*(undefined8 *)(param_1 + 8)" (* "*") (cast_expression "(undefined8 *)(param_1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (, ",") (number_literal "3") () ")"))))) (; ";")) (if_statement "if (__s == (char *)0x0) {\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }\n        else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" (if "if") (parenthesized_expression "(__s == (char *)0x0)" (( "(") (binary_expression "__s == (char *)0x0" (identifier "__s") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));\n          uVar4 = strlen(*(char **)(param_1 + 8));\n        }" ({ "{") (expression_statement "FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));" (call_expression "FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8))" (identifier "FUN_00129510") (argument_list "(&DAT_0016ffee,*(undefined8 *)(param_1 + 8))" (( "(") (pointer_expression "&DAT_0016ffee" (& "&") (identifier "DAT_0016ffee")) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 8)" (* "*") (cast_expression "(undefined8 *)(param_1 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar4 = strlen(*(char **)(param_1 + 8));" (assignment_expression "uVar4 = strlen(*(char **)(param_1 + 8))" (identifier "uVar4") (= "=") (call_expression "strlen(*(char **)(param_1 + 8))" (identifier "strlen") (argument_list "(*(char **)(param_1 + 8))" (( "(") (pointer_expression "*(char **)(param_1 + 8)" (* "*") (cast_expression "(char **)(param_1 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" (else "else") (compound_statement "{\n          FUN_00129510(&DAT_0016ffee,__s);\n          uVar4 = strlen(__s);\n          free(__s);\n        }" ({ "{") (expression_statement "FUN_00129510(&DAT_0016ffee,__s);" (call_expression "FUN_00129510(&DAT_0016ffee,__s)" (identifier "FUN_00129510") (argument_list "(&DAT_0016ffee,__s)" (( "(") (pointer_expression "&DAT_0016ffee" (& "&") (identifier "DAT_0016ffee")) (, ",") (identifier "__s") () ")"))) (; ";")) (expression_statement "uVar4 = strlen(__s);" (assignment_expression "uVar4 = strlen(__s)" (identifier "uVar4") (= "=") (call_expression "strlen(__s)" (identifier "strlen") (argument_list "(__s)" (( "(") (identifier "__s") () ")")))) (; ";")) (expression_statement "free(__s);" (call_expression "free(__s)" (identifier "free") (argument_list "(__s)" (( "(") (identifier "__s") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar11 = uVar4 & 0xffffffff;" (assignment_expression "uVar11 = uVar4 & 0xffffffff" (identifier "uVar11") (= "=") (binary_expression "uVar4 & 0xffffffff" (identifier "uVar4") (& "&") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (0x12 < (int)uVar4) {\n          FUN_001284b0();\n          uVar11 = 0;\n        }" (if "if") (parenthesized_expression "(0x12 < (int)uVar4)" (( "(") (binary_expression "0x12 < (int)uVar4" (number_literal "0x12") (< "<") (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4"))) () ")")) (compound_statement "{\n          FUN_001284b0();\n          uVar11 = 0;\n        }" ({ "{") (expression_statement "FUN_001284b0();" (call_expression "FUN_001284b0()" (identifier "FUN_001284b0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}"))) (do_statement "do {\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        } while (uVar10 != 0x14);" (do "do") (compound_statement "{\n          FUN_00128490();\n          uVar10 = (int)uVar11 + 1;\n          uVar11 = (ulong)uVar10;\n        }" ({ "{") (expression_statement "FUN_00128490();" (call_expression "FUN_00128490()" (identifier "FUN_00128490") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar10 = (int)uVar11 + 1;" (assignment_expression "uVar10 = (int)uVar11 + 1" (identifier "uVar10") (= "=") (binary_expression "(int)uVar11 + 1" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = (ulong)uVar10;" (assignment_expression "uVar11 = (ulong)uVar10" (identifier "uVar11") (= "=") (cast_expression "(ulong)uVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 != 0x14)" (( "(") (binary_expression "uVar10 != 0x14" (identifier "uVar10") (!= "!=") (number_literal "0x14")) () ")")) (; ";")) (expression_statement "FUN_00129510("0x");" (call_expression "FUN_00129510("0x")" (identifier "FUN_00129510") (argument_list "("0x")" (( "(") (string_literal ""0x"" (" """) (string_content "0x") (" """)) () ")"))) (; ";")) (if_statement "if (uVar9 < 0x100000000) {\n          sprintf((char *)local_68,"%lx",uVar9);\n        }\n        else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" (if "if") (parenthesized_expression "(uVar9 < 0x100000000)" (( "(") (binary_expression "uVar9 < 0x100000000" (identifier "uVar9") (< "<") (number_literal "0x100000000")) () ")")) (compound_statement "{\n          sprintf((char *)local_68,"%lx",uVar9);\n        }" ({ "{") (expression_statement "sprintf((char *)local_68,"%lx",uVar9);" (call_expression "sprintf((char *)local_68,"%lx",uVar9)" (identifier "sprintf") (argument_list "((char *)local_68,"%lx",uVar9)" (( "(") (cast_expression "(char *)local_68" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_68")) (, ",") (string_literal ""%lx"" (" """) (string_content "%lx") (" """)) (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" (else "else") (compound_statement "{\n          sprintf((char *)local_68,"%016lx",uVar9);\n        }" ({ "{") (expression_statement "sprintf((char *)local_68,"%016lx",uVar9);" (call_expression "sprintf((char *)local_68,"%016lx",uVar9)" (identifier "sprintf") (argument_list "((char *)local_68,"%016lx",uVar9)" (( "(") (cast_expression "(char *)local_68" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_68")) (, ",") (string_literal ""%016lx"" (" """) (string_content "%016lx") (" """)) (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00129510(&DAT_0016ffee,local_68);" (call_expression "FUN_00129510(&DAT_0016ffee,local_68)" (identifier "FUN_00129510") (argument_list "(&DAT_0016ffee,local_68)" (( "(") (pointer_expression "&DAT_0016ffee" (& "&") (identifier "DAT_0016ffee")) (, ",") (identifier "local_68") () ")"))) (; ";")) (expression_statement "puVar8 = local_68;" (assignment_expression "puVar8 = local_68" (identifier "puVar8") (= "=") (identifier "local_68")) (; ";")) (do_statement "do {\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        } while (uVar10 == 0);" (do "do") (compound_statement "{\n          puVar7 = puVar8;\n          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;\n          uVar10 = uVar3 & 0x80808080;\n          puVar8 = puVar7 + 1;\n        }" ({ "{") (expression_statement "puVar7 = puVar8;" (assignment_expression "puVar7 = puVar8" (identifier "puVar7") (= "=") (identifier "puVar8")) (; ";")) (expression_statement "uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;" (assignment_expression "uVar3 = *puVar7 + 0xfefefeff & ~*puVar7" (identifier "uVar3") (= "=") (binary_expression "*puVar7 + 0xfefefeff & ~*puVar7" (binary_expression "*puVar7 + 0xfefefeff" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~*puVar7" (~ "~") (pointer_expression "*puVar7" (* "*") (identifier "puVar7"))))) (; ";")) (expression_statement "uVar10 = uVar3 & 0x80808080;" (assignment_expression "uVar10 = uVar3 & 0x80808080" (identifier "uVar10") (= "=") (binary_expression "uVar3 & 0x80808080" (identifier "uVar3") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "puVar8 = puVar7 + 1;" (assignment_expression "puVar8 = puVar7 + 1" (identifier "puVar8") (= "=") (binary_expression "puVar7 + 1" (identifier "puVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar12 = (uVar3 & 0x8080) == 0;" (assignment_expression "bVar12 = (uVar3 & 0x8080) == 0" (identifier "bVar12") (= "=") (binary_expression "(uVar3 & 0x8080) == 0" (parenthesized_expression "(uVar3 & 0x8080)" (( "(") (binary_expression "uVar3 & 0x8080" (identifier "uVar3") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar12) {\n          uVar10 = uVar10 >> 0x10;\n        }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n          uVar10 = uVar10 >> 0x10;\n        }" ({ "{") (expression_statement "uVar10 = uVar10 >> 0x10;" (assignment_expression "uVar10 = uVar10 >> 0x10" (identifier "uVar10") (= "=") (binary_expression "uVar10 >> 0x10" (identifier "uVar10") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (if_statement "if (bVar12) {\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }" (if "if") (parenthesized_expression "(bVar12)" (( "(") (identifier "bVar12") () ")")) (compound_statement "{\n          puVar8 = (uint *)((long)puVar7 + 6);\n        }" ({ "{") (expression_statement "puVar8 = (uint *)((long)puVar7 + 6);" (assignment_expression "puVar8 = (uint *)((long)puVar7 + 6)" (identifier "puVar8") (= "=") (cast_expression "(uint *)((long)puVar7 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar7 + 6)" (( "(") (binary_expression "(long)puVar7 + 6" (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);" (assignment_expression "uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" (identifier "uVar9") (= "=") (binary_expression "(long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (parenthesized_expression "((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68)" (( "(") (binary_expression "(-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68" (parenthesized_expression "(-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10))" (( "(") (binary_expression "-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)" (number_literal "-3") (- "-") (cast_expression "(ulong)CARRY1((byte)uVar10,(byte)uVar10)" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (call_expression "CARRY1((byte)uVar10,(byte)uVar10)" (identifier "CARRY1") (argument_list "((byte)uVar10,(byte)uVar10)" (( "(") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10")) (, ",") (cast_expression "(byte)uVar10" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar10")) () ")"))))) () ")")) (- "-") (cast_expression "(long)local_68" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_68"))) () ")")))) (; ";")) (expression_statement "uVar4 = uVar9 & 0xffffffff;" (assignment_expression "uVar4 = uVar9 & 0xffffffff" (identifier "uVar4") (= "=") (binary_expression "uVar9 & 0xffffffff" (identifier "uVar9") (& "&") (number_literal "0xffffffff"))) (; ";")) (if_statement "if (uVar9 < 0x10) {\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }" (if "if") (parenthesized_expression "(uVar9 < 0x10)" (( "(") (binary_expression "uVar9 < 0x10" (identifier "uVar9") (< "<") (number_literal "0x10")) () ")")) (compound_statement "{\n          do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);\n        }" ({ "{") (do_statement "do {\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          } while (uVar10 != 0x10);" (do "do") (compound_statement "{\n            FUN_00128490();\n            uVar10 = (int)uVar4 + 1;\n            uVar4 = (ulong)uVar10;\n          }" ({ "{") (expression_statement "FUN_00128490();" (call_expression "FUN_00128490()" (identifier "FUN_00128490") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar10 = (int)uVar4 + 1;" (assignment_expression "uVar10 = (int)uVar4 + 1" (identifier "uVar10") (= "=") (binary_expression "(int)uVar4 + 1" (cast_expression "(int)uVar4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar4")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = (ulong)uVar10;" (assignment_expression "uVar4 = (ulong)uVar10" (identifier "uVar4") (= "=") (cast_expression "(ulong)uVar10" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 != 0x10)" (( "(") (binary_expression "uVar10 != 0x10" (identifier "uVar10") (!= "!=") (number_literal "0x10")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));" (call_expression "FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0))" (identifier "FUN_00129510") (argument_list "(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0))" (( "(") (pointer_expression "&DAT_0016fec4" (& "&") (identifier "DAT_0016fec4")) (, ",") (pointer_expression "*(undefined8 *)(lVar1 + 0xf0)" (* "*") (cast_expression "(undefined8 *)(lVar1 + 0xf0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + 0xf0)" (( "(") (binary_expression "lVar1 + 0xf0" (identifier "lVar1") (+ "+") (number_literal "0xf0")) () ")")))) () ")"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))))) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))

type_1 function_1(type_2 *h,void *info)

{
  type_3 *pbVar1;
  type_4 *paVar2;
  type_1 var_4;
  type_5 var_18;
  char *var_10;
  type_6 var_13;
  char *fmt;
  type_5 *var_19;
  type_5 *puVar8;
  type_6 var_16;
  type_5 var_2;
  type_6 uVar11;
  bool bVar12;
  char buf [50];
  
  if (h->field_0x18 == '\x05') {
    pbVar1 = (h->u).c.p;
    var_2 = pbVar1->alignment_power;
    if (config.sort_common == var_1) {
                    /* WARNING: Load size is inaccurate */
      if (*info <= var_2) goto LAB_0011883e;
    }
    else {
                    /* WARNING: Load size is inaccurate */
      if ((config.sort_common != var_3) || (var_2 <= *info)) {
LAB_0011883e:
        var_16 = (h->u).def.value;
        paVar2 = pbVar1->section;
        var_4 = (*(link_info.output_bfd)->xvec->_bfd_define_common_symbol)
                          (link_info.output_bfd,&link_info,h);
        if (var_4 == 0) {
          var_10 = (h->root).string;
          fmt = (char *)var_5(0,"%F%P: could not define common symbol `%pT\': %E\n",5);
          var_6(fmt,var_10);
        }
        if (config.map_file != (type_7 *)0x0) {
          if (var_7 == 0) {
            var_10 = (char *)var_5(0,"\nAllocating common symbols\n",5);
            var_8(var_10);
            var_10 = (char *)var_5(0,"Common symbol       size              file\n\n",5);
            var_8(var_10);
            var_7 = 1;
          }
          var_10 = (char *)var_9(link_info.output_bfd,(h->root).string,3);
          if (var_10 == (char *)0x0) {
            var_8("%s",(h->root).string);
            var_13 = var_11((h->root).string);
          }
          else {
            var_8("%s",var_10);
            var_13 = var_11(var_10);
            var_12(var_10);
          }
          uVar11 = var_13 & 0xffffffff;
          if (0x12 < (int)var_13) {
            var_14();
            uVar11 = 0;
          }
          do {
            var_15();
            var_2 = (int)uVar11 + 1;
            uVar11 = (type_6)var_2;
          } while (var_2 != 0x14);
          var_8("0x");
          if (var_16 < 0x100000000) {
            var_17(buf,"%lx",var_16);
          }
          else {
            var_17(buf,"%016lx",var_16);
          }
          var_8("%s",buf);
          puVar8 = (type_5 *)buf;
          do {
            var_19 = puVar8;
            var_18 = *var_19 + 0xfefefeff & ~*var_19;
            var_2 = var_18 & 0x80808080;
            puVar8 = var_19 + 1;
          } while (var_2 == 0);
          bVar12 = (var_18 & 0x8080) == 0;
          if (bVar12) {
            var_2 = var_2 >> 0x10;
          }
          if (bVar12) {
            puVar8 = (type_5 *)((long)var_19 + 6);
          }
          var_16 = (long)puVar8 + ((-3 - (type_6)var_20((type_8)var_2,(type_8)var_2)) - (long)buf);
          var_13 = var_16 & 0xffffffff;
          if (var_16 < 0x10) {
            do {
              var_15();
              var_2 = (int)var_13 + 1;
              var_13 = (type_6)var_2;
            } while (var_2 != 0x10);
          }
          var_8("%pB\n",paVar2->owner);
        }
        return 1;
      }
    }
  }
  return 1;
}


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

undefined8 MASKED(long param_1,uint *param_2)

{
  long lVar1;
  int iVar2;
  uint uVar3;
  char *__s;
  ulong uVar4;
  undefined8 uVar5;
  undefined8 uVar6;
  uint *puVar7;
  uint *puVar8;
  ulong uVar9;
  uint uVar10;
  ulong uVar11;
  bool bVar12;
  uint local_68 [18];
  
  if (*(char *)(param_1 + 0x18) == '\x05') {
    uVar10 = **(uint **)(param_1 + 0x28);
    if (DAT_002a684c == 2) {
      if (*param_2 <= uVar10) goto LAB_0011883e;
    }
    else if ((DAT_002a684c != 1) || (uVar10 <= *param_2)) {
LAB_0011883e:
      uVar9 = *(ulong *)(param_1 + 0x30);
      lVar1 = *(long *)(*(uint **)(param_1 + 0x28) + 2);
      iVar2 = (**(code **)(*(long *)(DAT_002a66f0 + 8) + 800))(DAT_002a66f0,&DAT_002a66a0,param_1);
      if (iVar2 == 0) {
        uVar5 = *(undefined8 *)(param_1 + 8);
        uVar6 = dcgettext(0,"%F%P: could not define common symbol `%pT\': %E\n",5);
        FUN_00129410(uVar6,uVar5);
      }
      if (DAT_002a6878 != 0) {
        if (DAT_002a5200 == 0) {
          uVar5 = dcgettext(0,"\nAllocating common symbols\n",5);
          FUN_00129510(uVar5);
          uVar5 = dcgettext(0,"Common symbol       size              file\n\n",5);
          FUN_00129510(uVar5);
          DAT_002a5200 = 1;
        }
        __s = (char *)bfd_demangle(DAT_002a66f0,*(undefined8 *)(param_1 + 8),3);
        if (__s == (char *)0x0) {
          FUN_00129510(&DAT_0016ffee,*(undefined8 *)(param_1 + 8));
          uVar4 = strlen(*(char **)(param_1 + 8));
        }
        else {
          FUN_00129510(&DAT_0016ffee,__s);
          uVar4 = strlen(__s);
          free(__s);
        }
        uVar11 = uVar4 & 0xffffffff;
        if (0x12 < (int)uVar4) {
          FUN_001284b0();
          uVar11 = 0;
        }
        do {
          FUN_00128490();
          uVar10 = (int)uVar11 + 1;
          uVar11 = (ulong)uVar10;
        } while (uVar10 != 0x14);
        FUN_00129510("0x");
        if (uVar9 < 0x100000000) {
          sprintf((char *)local_68,"%lx",uVar9);
        }
        else {
          sprintf((char *)local_68,"%016lx",uVar9);
        }
        FUN_00129510(&DAT_0016ffee,local_68);
        puVar8 = local_68;
        do {
          puVar7 = puVar8;
          uVar3 = *puVar7 + 0xfefefeff & ~*puVar7;
          uVar10 = uVar3 & 0x80808080;
          puVar8 = puVar7 + 1;
        } while (uVar10 == 0);
        bVar12 = (uVar3 & 0x8080) == 0;
        if (bVar12) {
          uVar10 = uVar10 >> 0x10;
        }
        if (bVar12) {
          puVar8 = (uint *)((long)puVar7 + 6);
        }
        uVar9 = (long)puVar8 + ((-3 - (ulong)CARRY1((byte)uVar10,(byte)uVar10)) - (long)local_68);
        uVar4 = uVar9 & 0xffffffff;
        if (uVar9 < 0x10) {
          do {
            FUN_00128490();
            uVar10 = (int)uVar4 + 1;
            uVar4 = (ulong)uVar10;
          } while (uVar10 != 0x10);
        }
        FUN_00129510(&DAT_0016fec4,*(undefined8 *)(lVar1 + 0xf0));
      }
      return 1;
    }
  }
  return 1;
}

