
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: bool segment_precedes(Layout * this, Output_segment * seg1,
   Output_segment * seg2) */

bool __thiscall
gold::Layout::segment_precedes(Layout *this,Output_segment *seg1,Output_segment *seg2)

{
  byte bVar1;
  uint uVar2;
  General_options *pGVar3;
  byte bVar4;
  bool bVar5;
  bool bVar6;
  uint uVar7;
  uint uVar8;
  ulong uVar9;
  uint64_t uVar10;
  byte bVar11;
  uint uVar12;
  
  if (seg1 == seg2) {
    return false;
  }
  uVar7 = seg1->type_;
  uVar8 = seg2->type_;
  if (uVar7 == 6) {
    if (uVar8 == 6) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");
    }
    return true;
  }
  if (uVar8 != 6) {
    if (uVar7 == 3) {
      if (uVar8 == 3) {
                    /* WARNING: Subroutine does not return */
        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");
      }
      return true;
    }
    if (uVar8 != 3) {
      if ((uVar7 == 1) && (uVar8 != 1)) {
        return true;
      }
      if ((uVar8 != 1) || (uVar7 == 1)) {
        if ((uVar7 == 7) && (uVar8 != 7)) {
          if (uVar8 == 0x6474e552) {
            return true;
          }
        }
        else {
          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {
            return true;
          }
          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {
            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {
              return true;
            }
            uVar2 = seg1->flags_;
            uVar12 = seg2->flags_;
            if (uVar7 != 1) {
              if (uVar7 != uVar8) {
                return uVar7 < uVar8;
              }
              if ((uVar2 == uVar12) &&
                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||
                  ((this->script_options_->script_sections_).phdrs_elements_ ==
                   (Phdrs_elements *)0x0)))) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");
              }
              return uVar2 < uVar12;
            }
            bVar11 = seg2->field_0x2f8;
            bVar1 = seg1->field_0x2f8;
            bVar4 = bVar11 >> 1 & 1;
            if ((bVar1 & 2) == 0) {
              if (bVar4 != 0) {
                return false;
              }
            }
            else {
              if (bVar4 == 0) {
                return true;
              }
              uVar7 = Output_segment::output_section_count(seg1);
              uVar8 = Output_segment::output_section_count(seg2);
              if ((uVar7 == 0) && (uVar8 != 0)) {
                return true;
              }
              if ((uVar7 != 0) && (uVar8 == 0)) {
                return false;
              }
              if ((seg1->field_0x2f8 & 2) == 0) {
                uVar10 = Output_segment::first_section_load_address(seg1);
              }
              else {
                uVar10 = seg1->paddr_;
              }
              if ((seg2->field_0x2f8 & 2) == 0) {
                uVar9 = Output_segment::first_section_load_address(seg2);
              }
              else {
                uVar9 = seg2->paddr_;
              }
              if (uVar10 != uVar9) {
                return uVar10 < uVar9;
              }
              bVar11 = seg2->field_0x2f8;
              bVar1 = seg1->field_0x2f8;
            }
            bVar11 = bVar11 >> 2 & 1;
            if ((bVar1 & 4) == 0) {
              if (bVar11 != 0) {
                return true;
              }
            }
            else if (bVar11 == 0) {
              return false;
            }
            uVar12 = uVar12 ^ uVar2;
            if ((uVar12 & 2) != 0) {
              return (uVar2 & 2) == 0;
            }
            if ((uVar2 & 2) != 0) {
              bVar5 = Output_segment::has_any_data_sections(seg1);
              bVar6 = Output_segment::has_any_data_sections(seg2);
              if (bVar5 != bVar6) {
                bVar5 = Output_segment::has_any_data_sections(seg1);
                return bVar5;
              }
            }
            if ((uVar12 & 1) != 0) {
              return (bool)((byte)uVar2 & 1);
            }
            if ((uVar12 & 4) != 0) {
              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);
            }
            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||
               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))
            {
              pGVar3 = parameters->options_;
              if (pGVar3 == (General_options *)0x0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");
              }
              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)
                  && (this->unique_segment_for_sections_specified_ == false)) &&
                 ((pGVar3->text_unlikely_segment_).value == false)) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");
              }
            }
          }
        }
      }
    }
  }
  return false;
}



uint FUN_001a5c70(long param_1,long param_2,long param_3)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  long lVar4;
  byte bVar5;
  char cVar6;
  char cVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  ulong uVar11;
  ulong uVar12;
  byte bVar13;
  uint uVar14;
  bool bVar15;
  
  if (param_2 == param_3) {
    return 0;
  }
  uVar10 = *(uint *)(param_2 + 0x2f0);
  uVar2 = *(uint *)(param_3 + 0x2f0);
  if (uVar10 == 6) {
    if (uVar2 == 6) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");
    }
    return 1;
  }
  if (uVar2 != 6) {
    if (uVar10 == 3) {
      if (uVar2 == 3) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");
      }
      return 1;
    }
    if (uVar2 != 3) {
      if ((uVar10 == 1) && (uVar2 != 1)) {
        return 1;
      }
      if ((uVar2 != 1) || (uVar10 == 1)) {
        if ((uVar10 == 7) && (uVar2 != 7)) {
          if (uVar2 == 0x6474e552) {
            return 1;
          }
        }
        else {
          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {
            return 1;
          }
          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {
            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {
              return 1;
            }
            uVar3 = *(uint *)(param_2 + 0x2f4);
            uVar14 = *(uint *)(param_3 + 0x2f4);
            if (uVar10 != 1) {
              bVar15 = uVar10 < uVar2;
              if (uVar10 == uVar2) {
                if ((uVar3 == uVar14) &&
                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||
                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {
                    /* WARNING: Subroutine does not return */
                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");
                }
                bVar15 = uVar3 < uVar14;
              }
LAB_001a5dab:
              return (uint)bVar15;
            }
            bVar13 = *(byte *)(param_3 + 0x2f8);
            bVar1 = *(byte *)(param_2 + 0x2f8);
            bVar5 = bVar13 >> 1 & 1;
            if ((bVar1 & 2) == 0) {
              if (bVar5 != 0) {
                return 0;
              }
            }
            else {
              if (bVar5 == 0) {
                return 1;
              }
              iVar8 = FUN_001f8220(param_2);
              iVar9 = FUN_001f8220(param_3);
              if ((iVar8 == 0) && (iVar9 != 0)) {
                return 1;
              }
              if ((iVar8 != 0) && (iVar9 == 0)) {
                return 0;
              }
              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {
                uVar12 = FUN_001b19c0(param_2);
              }
              else {
                uVar12 = *(ulong *)(param_2 + 0x2c0);
              }
              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {
                uVar11 = FUN_001b19c0(param_3);
              }
              else {
                uVar11 = *(ulong *)(param_3 + 0x2c0);
              }
              bVar15 = uVar12 < uVar11;
              if (uVar12 != uVar11) goto LAB_001a5dab;
              bVar13 = *(byte *)(param_3 + 0x2f8);
              bVar1 = *(byte *)(param_2 + 0x2f8);
            }
            bVar13 = bVar13 >> 2 & 1;
            if ((bVar1 & 4) == 0) {
              if (bVar13 != 0) {
                return 1;
              }
            }
            else if (bVar13 == 0) {
              return 0;
            }
            uVar14 = uVar14 ^ uVar3;
            if ((uVar14 & 2) != 0) {
              return (uint)((uVar3 & 2) == 0);
            }
            if ((uVar3 & 2) != 0) {
              cVar6 = FUN_001f72a0(param_2);
              cVar7 = FUN_001f72a0(param_3);
              if (cVar6 != cVar7) {
                uVar10 = FUN_001f72a0(param_2);
                return uVar10;
              }
            }
            if ((uVar14 & 1) != 0) {
              return uVar3 & 1;
            }
            if ((uVar14 & 4) != 0) {
              return (uVar3 >> 2 ^ 1) & 1;
            }
            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||
               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {
              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
              if (lVar4 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_0017c650("../../gold/parameters.h",0x5c,"options");
              }
              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&
                 (*(char *)(lVar4 + 0x8f19) == '\0')) {
                    /* WARNING: Subroutine does not return */
                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");
              }
            }
          }
        }
      }
    }
  }
  return 0;
}


CMP RSI,RDX
JZ 0x001a5d28
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x18
MOV EAX,dword ptr [RSI + 0x2f0]
MOV ECX,dword ptr [RDX + 0x2f0]
CMP EAX,0x6
JZ 0x001a5cd0
CMP ECX,0x6
JZ 0x001a5cc0
CMP EAX,0x3
JZ 0x001a5d08
CMP ECX,0x3
JZ 0x001a5cc0
CMP EAX,0x1
JNZ 0x001a5cb0
CMP ECX,0x1
JNZ 0x001a5cd9
CMP ECX,0x1
JNZ 0x001a5cf0
CMP EAX,0x1
JZ 0x001a5cf0
NOP word ptr [RAX + RAX*0x1]
XOR EAX,EAX
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
RET
CMP ECX,0x6
JZ 0x001a5fe7
ADD RSP,0x18
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
RET
CMP EAX,0x7
JNZ 0x001a5d30
CMP ECX,0x7
JZ 0x001a5d30
CMP ECX,0x6474e552
JNZ 0x001a5cc0
JMP 0x001a5cd9
CMP ECX,0x3
JNZ 0x001a5cd9
LEA RDX,[0x377500]
MOV ESI,0xe4e
LEA RDI,[0x37612f]
CALL 0x0017c650
XOR EAX,EAX
RET
CMP EAX,0x6474e552
SETNZ DIL
CMP EAX,0x7
SETNZ R8B
TEST R8B,DIL
JZ 0x001a5d4a
CMP ECX,0x7
JZ 0x001a5cd9
CMP EAX,0x6474e552
JNZ 0x001a5d5d
CMP ECX,0x6474e552
JNZ 0x001a5cc0
CMP ECX,0x6474e552
JNZ 0x001a5d6e
TEST DIL,DIL
JNZ 0x001a5cd9
MOV EBX,dword ptr [RSI + 0x2f4]
MOV R12D,dword ptr [RDX + 0x2f4]
CMP EAX,0x1
JZ 0x001a5db3
CMP EAX,ECX
JNZ 0x001a5dab
CMP EBX,R12D
JNZ 0x001a5da8
MOV RAX,qword ptr [RBP + 0x8]
CMP byte ptr [RAX + 0x148],0x0
JZ 0x001a5f1d
CMP qword ptr [RAX + 0x168],0x0
JZ 0x001a5f1d
CMP EBX,R12D
SETC AL
JMP 0x001a5cc2
MOVZX ECX,byte ptr [RDX + 0x2f8]
MOVZX EDI,byte ptr [RSI + 0x2f8]
MOV EAX,ECX
SHR AL,0x1
AND EAX,0x1
TEST DIL,0x2
JZ 0x001a5f10
MOV qword ptr [RSP],RDX
TEST AL,AL
JZ 0x001a5cd9
MOV RDI,RSI
MOV qword ptr [RSP + 0x8],RSI
CALL 0x001f8220
MOV RDX,qword ptr [RSP]
MOV R13D,EAX
MOV RDI,RDX
CALL 0x001f8220
TEST R13D,R13D
MOV RDX,qword ptr [RSP]
MOV RSI,qword ptr [RSP + 0x8]
JNZ 0x001a5e10
TEST EAX,EAX
JNZ 0x001a5cd9
TEST R13D,R13D
JZ 0x001a5e1d
TEST EAX,EAX
JZ 0x001a5cc0
TEST byte ptr [RSI + 0x2f8],0x2
JZ 0x001a5fc5
MOV R13,qword ptr [RSI + 0x2c0]
TEST byte ptr [RDX + 0x2f8],0x2
JZ 0x001a5fa6
MOV RAX,qword ptr [RDX + 0x2c0]
CMP R13,RAX
JNZ 0x001a5dab
MOVZX ECX,byte ptr [RDX + 0x2f8]
MOVZX EDI,byte ptr [RSI + 0x2f8]
SHR CL,0x2
AND ECX,0x1
AND EDI,0x4
JZ 0x001a5f35
TEST CL,CL
JZ 0x001a5cc0
MOV EAX,EBX
XOR R12D,EBX
AND EAX,0x2
TEST R12B,0x2
JNZ 0x001a5f42
TEST EAX,EAX
JNZ 0x001a5f4c
TEST R12B,0x1
JNZ 0x001a5f8c
AND R12B,0x4
JNZ 0x001a5f96
MOV RAX,qword ptr [RBP + 0x8]
CMP byte ptr [RAX + 0x148],0x0
JZ 0x001a5ebc
CMP qword ptr [RAX + 0x168],0x0
JNZ 0x001a5cc0
MOV RAX,qword ptr [0x0043e6b0]
MOV RAX,qword ptr [RAX + 0x10]
TEST RAX,RAX
JZ 0x001a5fff
CMP qword ptr [RAX + 0x9298],0x0
JNZ 0x001a5cc0
CMP byte ptr [RBP + 0x372],0x0
JNZ 0x001a5cc0
CMP byte ptr [RAX + 0x8f19],0x0
JNZ 0x001a5cc0
LEA RDX,[0x377500]
MOV ESI,0xebd
LEA RDI,[0x37612f]
CALL 0x0017c650
TEST AL,AL
JZ 0x001a5e5c
JMP 0x001a5cc0
LEA RDX,[0x377500]
MOV ESI,0xe7b
LEA RDI,[0x37612f]
CALL 0x0017c650
TEST CL,CL
JZ 0x001a5e73
JMP 0x001a5cd9
TEST EAX,EAX
SETZ AL
JMP 0x001a5cc2
MOV RDI,RSI
MOV qword ptr [RSP + 0x8],RDX
MOV qword ptr [RSP],RSI
CALL 0x001f72a0
MOV RDX,qword ptr [RSP + 0x8]
MOV R13D,EAX
MOV RDI,RDX
CALL 0x001f72a0
CMP R13B,AL
JZ 0x001a5e8d
MOV RSI,qword ptr [RSP]
ADD RSP,0x18
POP RBX
POP RBP
MOV RDI,RSI
POP R12
POP R13
JMP 0x001f72a0
MOV EAX,EBX
AND EAX,0x1
JMP 0x001a5cc2
MOV EAX,EBX
SHR EAX,0x2
XOR EAX,0x1
AND EAX,0x1
JMP 0x001a5cc2
MOV RDI,RDX
MOV qword ptr [RSP + 0x8],RSI
MOV qword ptr [RSP],RDX
CALL 0x001b19c0
MOV RSI,qword ptr [RSP + 0x8]
MOV RDX,qword ptr [RSP]
JMP 0x001a5e45
MOV RDI,RSI
MOV qword ptr [RSP + 0x8],RDX
MOV qword ptr [RSP],RSI
CALL 0x001b19c0
MOV RDX,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP]
MOV R13,RAX
JMP 0x001a5e31
LEA RDX,[0x377500]
MOV ESI,0xe44
LEA RDI,[0x37612f]
CALL 0x0017c650
LEA RDX,[0x3778a8]
MOV ESI,0x5c
LEA RDI,[0x3726d0]
CALL 0x0017c650
(translation_unit "uint FUN_001a5c70(long param_1,long param_2,long param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  byte bVar13;\n  uint uVar14;\n  bool bVar15;\n  \n  if (param_2 == param_3) {\n    return 0;\n  }\n  uVar10 = *(uint *)(param_2 + 0x2f0);\n  uVar2 = *(uint *)(param_3 + 0x2f0);\n  if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }\n  if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return 0;\n}\n\n" (function_definition "uint FUN_001a5c70(long param_1,long param_2,long param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  byte bVar13;\n  uint uVar14;\n  bool bVar15;\n  \n  if (param_2 == param_3) {\n    return 0;\n  }\n  uVar10 = *(uint *)(param_2 + 0x2f0);\n  uVar2 = *(uint *)(param_3 + 0x2f0);\n  if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }\n  if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_001a5c70(long param_1,long param_2,long param_3)" identifier (parameter_list "(long param_1,long param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  byte bVar13;\n  uint uVar14;\n  bool bVar15;\n  \n  if (param_2 == param_3) {\n    return 0;\n  }\n  uVar10 = *(uint *)(param_2 + 0x2f0);\n  uVar2 = *(uint *)(param_3 + 0x2f0);\n  if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }\n  if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return 0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (if_statement "if (param_2 == param_3) {\n    return 0;\n  }" if (parenthesized_expression "(param_2 == param_3)" ( (binary_expression "param_2 == param_3" identifier == identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar10 = *(uint *)(param_2 + 0x2f0);" (assignment_expression "uVar10 = *(uint *)(param_2 + 0x2f0)" identifier = (pointer_expression "*(uint *)(param_2 + 0x2f0)" * (cast_expression "(uint *)(param_2 + 0x2f0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f0)" ( (binary_expression "param_2 + 0x2f0" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_3 + 0x2f0);" (assignment_expression "uVar2 = *(uint *)(param_3 + 0x2f0)" identifier = (pointer_expression "*(uint *)(param_3 + 0x2f0)" * (cast_expression "(uint *)(param_3 + 0x2f0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f0)" ( (binary_expression "param_3 + 0x2f0" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }" if (parenthesized_expression "(uVar10 == 6)" ( (binary_expression "uVar10 == 6" identifier == number_literal) )) (compound_statement "{\n    if (uVar2 == 6) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }" { (if_statement "if (uVar2 == 6) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }" if (parenthesized_expression "(uVar2 == 6)" ( (binary_expression "uVar2 == 6" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }" { comment (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe44,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )) (compound_statement "{\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (if_statement "if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }" if (parenthesized_expression "(uVar10 == 3)" ( (binary_expression "uVar10 == 3" identifier == number_literal) )) (compound_statement "{\n      if (uVar2 == 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }" { (if_statement "if (uVar2 == 3) {\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }" if (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }" { comment (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe4e,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) )) (compound_statement "{\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }" { (if_statement "if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }" if (parenthesized_expression "((uVar10 == 1) && (uVar2 != 1))" ( (binary_expression "(uVar10 == 1) && (uVar2 != 1)" (parenthesized_expression "(uVar10 == 1)" ( (binary_expression "uVar10 == 1" identifier == number_literal) )) && (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) ))) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((uVar2 != 1) || (uVar10 == 1))" ( (binary_expression "(uVar2 != 1) || (uVar10 == 1)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(uVar10 == 1)" ( (binary_expression "uVar10 == 1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }" { (if_statement "if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" if (parenthesized_expression "((uVar10 == 7) && (uVar2 != 7))" ( (binary_expression "(uVar10 == 7) && (uVar2 != 7)" (parenthesized_expression "(uVar10 == 7)" ( (binary_expression "uVar10 == 7" identifier == number_literal) )) && (parenthesized_expression "(uVar2 != 7)" ( (binary_expression "uVar2 != 7" identifier != number_literal) ))) )) (compound_statement "{\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }" { (if_statement "if (uVar2 == 0x6474e552) {\n            return 1;\n          }" if (parenthesized_expression "(uVar2 == 0x6474e552)" ( (binary_expression "uVar2 == 0x6474e552" identifier == number_literal) )) (compound_statement "{\n            return 1;\n          }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" else (compound_statement "{\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" { (if_statement "if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }" if (parenthesized_expression "((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7))" ( (binary_expression "(uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)" (parenthesized_expression "(uVar10 != 7 && uVar10 != 0x6474e552)" ( (binary_expression "uVar10 != 7 && uVar10 != 0x6474e552" (binary_expression "uVar10 != 7" identifier != number_literal) && (binary_expression "uVar10 != 0x6474e552" identifier != number_literal)) )) && (parenthesized_expression "(uVar2 == 7)" ( (binary_expression "uVar2 == 7" identifier == number_literal) ))) )) (compound_statement "{\n            return 1;\n          }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }" if (parenthesized_expression "((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552))" ( (binary_expression "(uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)" (parenthesized_expression "(uVar10 != 0x6474e552)" ( (binary_expression "uVar10 != 0x6474e552" identifier != number_literal) )) || (parenthesized_expression "(uVar2 == 0x6474e552)" ( (binary_expression "uVar2 == 0x6474e552" identifier == number_literal) ))) )) (compound_statement "{\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }" { (if_statement "if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }" if (parenthesized_expression "((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552))" ( (binary_expression "(uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)" (parenthesized_expression "(uVar2 == 0x6474e552)" ( (binary_expression "uVar2 == 0x6474e552" identifier == number_literal) )) && (parenthesized_expression "(uVar10 != 0x6474e552)" ( (binary_expression "uVar10 != 0x6474e552" identifier != number_literal) ))) )) (compound_statement "{\n              return 1;\n            }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar3 = *(uint *)(param_2 + 0x2f4);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x2f4)" identifier = (pointer_expression "*(uint *)(param_2 + 0x2f4)" * (cast_expression "(uint *)(param_2 + 0x2f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f4)" ( (binary_expression "param_2 + 0x2f4" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(param_3 + 0x2f4);" (assignment_expression "uVar14 = *(uint *)(param_3 + 0x2f4)" identifier = (pointer_expression "*(uint *)(param_3 + 0x2f4)" * (cast_expression "(uint *)(param_3 + 0x2f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f4)" ( (binary_expression "param_3 + 0x2f4" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }" if (parenthesized_expression "(uVar10 != 1)" ( (binary_expression "uVar10 != 1" identifier != number_literal) )) (compound_statement "{\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }" { (expression_statement "bVar15 = uVar10 < uVar2;" (assignment_expression "bVar15 = uVar10 < uVar2" identifier = (binary_expression "uVar10 < uVar2" identifier < identifier)) ;) (if_statement "if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }" if (parenthesized_expression "(uVar10 == uVar2)" ( (binary_expression "uVar10 == uVar2" identifier == identifier) )) (compound_statement "{\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }" { (if_statement "if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }" if (parenthesized_expression "((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))))" ( (binary_expression "(uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))" (parenthesized_expression "(uVar3 == uVar14)" ( (binary_expression "uVar3 == uVar14" identifier == identifier) )) && (parenthesized_expression "((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))" ( (parenthesized_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))" ( (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" * (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" ( (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" ( (binary_expression "*(long *)(*(long *)(param_1 + 8) + 0x168) == 0" (pointer_expression "*(long *)(*(long *)(param_1 + 8) + 0x168)" * (cast_expression "(long *)(*(long *)(param_1 + 8) + 0x168)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x168)" ( (binary_expression "*(long *)(param_1 + 8) + 0x168" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }" { comment (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe7b,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (expression_statement "bVar15 = uVar3 < uVar14;" (assignment_expression "bVar15 = uVar3 < uVar14" identifier = (binary_expression "uVar3 < uVar14" identifier < identifier)) ;) })) (labeled_statement "LAB_001a5dab:\n              return (uint)bVar15;" statement_identifier : (return_statement "return (uint)bVar15;" return (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) ;)) })) (expression_statement "bVar13 = *(byte *)(param_3 + 0x2f8);" (assignment_expression "bVar13 = *(byte *)(param_3 + 0x2f8)" identifier = (pointer_expression "*(byte *)(param_3 + 0x2f8)" * (cast_expression "(byte *)(param_3 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f8)" ( (binary_expression "param_3 + 0x2f8" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)(param_2 + 0x2f8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 0x2f8)" identifier = (pointer_expression "*(byte *)(param_2 + 0x2f8)" * (cast_expression "(byte *)(param_2 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f8)" ( (binary_expression "param_2 + 0x2f8" identifier + number_literal) ))))) ;) (expression_statement "bVar5 = bVar13 >> 1 & 1;" (assignment_expression "bVar5 = bVar13 >> 1 & 1" identifier = (binary_expression "bVar13 >> 1 & 1" (binary_expression "bVar13 >> 1" identifier >> number_literal) & number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }" { (if_statement "if (bVar5 != 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar5 != 0)" ( (binary_expression "bVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" else (compound_statement "{\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" { (if_statement "if (bVar5 == 0) {\n                return 1;\n              }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                return 1;\n              }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar8 = FUN_001f8220(param_2);" (assignment_expression "iVar8 = FUN_001f8220(param_2)" identifier = (call_expression "FUN_001f8220(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar9 = FUN_001f8220(param_3);" (assignment_expression "iVar9 = FUN_001f8220(param_3)" identifier = (call_expression "FUN_001f8220(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }" if (parenthesized_expression "((iVar8 == 0) && (iVar9 != 0))" ( (binary_expression "(iVar8 == 0) && (iVar9 != 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                return 1;\n              }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }" if (parenthesized_expression "((iVar8 != 0) && (iVar9 == 0))" ( (binary_expression "(iVar8 != 0) && (iVar9 == 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" if (parenthesized_expression "((*(byte *)(param_2 + 0x2f8) & 2) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x2f8) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x2f8) & 2)" ( (binary_expression "*(byte *)(param_2 + 0x2f8) & 2" (pointer_expression "*(byte *)(param_2 + 0x2f8)" * (cast_expression "(byte *)(param_2 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f8)" ( (binary_expression "param_2 + 0x2f8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar12 = FUN_001b19c0(param_2);\n              }" { (expression_statement "uVar12 = FUN_001b19c0(param_2);" (assignment_expression "uVar12 = FUN_001b19c0(param_2)" identifier = (call_expression "FUN_001b19c0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) }) (else_clause "else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" else (compound_statement "{\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" { (expression_statement "uVar12 = *(ulong *)(param_2 + 0x2c0);" (assignment_expression "uVar12 = *(ulong *)(param_2 + 0x2c0)" identifier = (pointer_expression "*(ulong *)(param_2 + 0x2c0)" * (cast_expression "(ulong *)(param_2 + 0x2c0)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c0)" ( (binary_expression "param_2 + 0x2c0" identifier + number_literal) ))))) ;) }))) (if_statement "if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" if (parenthesized_expression "((*(byte *)(param_3 + 0x2f8) & 2) == 0)" ( (binary_expression "(*(byte *)(param_3 + 0x2f8) & 2) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x2f8) & 2)" ( (binary_expression "*(byte *)(param_3 + 0x2f8) & 2" (pointer_expression "*(byte *)(param_3 + 0x2f8)" * (cast_expression "(byte *)(param_3 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f8)" ( (binary_expression "param_3 + 0x2f8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar11 = FUN_001b19c0(param_3);\n              }" { (expression_statement "uVar11 = FUN_001b19c0(param_3);" (assignment_expression "uVar11 = FUN_001b19c0(param_3)" identifier = (call_expression "FUN_001b19c0(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) }) (else_clause "else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" else (compound_statement "{\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" { (expression_statement "uVar11 = *(ulong *)(param_3 + 0x2c0);" (assignment_expression "uVar11 = *(ulong *)(param_3 + 0x2c0)" identifier = (pointer_expression "*(ulong *)(param_3 + 0x2c0)" * (cast_expression "(ulong *)(param_3 + 0x2c0)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c0)" ( (binary_expression "param_3 + 0x2c0" identifier + number_literal) ))))) ;) }))) (expression_statement "bVar15 = uVar12 < uVar11;" (assignment_expression "bVar15 = uVar12 < uVar11" identifier = (binary_expression "uVar12 < uVar11" identifier < identifier)) ;) (if_statement "if (uVar12 != uVar11) goto LAB_001a5dab;" if (parenthesized_expression "(uVar12 != uVar11)" ( (binary_expression "uVar12 != uVar11" identifier != identifier) )) (goto_statement "goto LAB_001a5dab;" goto statement_identifier ;)) (expression_statement "bVar13 = *(byte *)(param_3 + 0x2f8);" (assignment_expression "bVar13 = *(byte *)(param_3 + 0x2f8)" identifier = (pointer_expression "*(byte *)(param_3 + 0x2f8)" * (cast_expression "(byte *)(param_3 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f8)" ( (binary_expression "param_3 + 0x2f8" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)(param_2 + 0x2f8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 0x2f8)" identifier = (pointer_expression "*(byte *)(param_2 + 0x2f8)" * (cast_expression "(byte *)(param_2 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f8)" ( (binary_expression "param_2 + 0x2f8" identifier + number_literal) ))))) ;) }))) (expression_statement "bVar13 = bVar13 >> 2 & 1;" (assignment_expression "bVar13 = bVar13 >> 2 & 1" identifier = (binary_expression "bVar13 >> 2 & 1" (binary_expression "bVar13 >> 2" identifier >> number_literal) & number_literal)) ;) (if_statement "if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }" { (if_statement "if (bVar13 != 0) {\n                return 1;\n              }" if (parenthesized_expression "(bVar13 != 0)" ( (binary_expression "bVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                return 1;\n              }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (bVar13 == 0) {\n              return 0;\n            }" else (if_statement "if (bVar13 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })))) (expression_statement "uVar14 = uVar14 ^ uVar3;" (assignment_expression "uVar14 = uVar14 ^ uVar3" identifier = (binary_expression "uVar14 ^ uVar3" identifier ^ identifier)) ;) (if_statement "if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }" if (parenthesized_expression "((uVar14 & 2) != 0)" ( (binary_expression "(uVar14 & 2) != 0" (parenthesized_expression "(uVar14 & 2)" ( (binary_expression "uVar14 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return (uint)((uVar3 & 2) == 0);\n            }" { (return_statement "return (uint)((uVar3 & 2) == 0);" return (call_expression "(uint)((uVar3 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar3 & 2) == 0)" ( (binary_expression "(uVar3 & 2) == 0" (parenthesized_expression "(uVar3 & 2)" ( (binary_expression "uVar3 & 2" identifier & number_literal) )) == number_literal) ))) ;) })) (if_statement "if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }" if (parenthesized_expression "((uVar3 & 2) != 0)" ( (binary_expression "(uVar3 & 2) != 0" (parenthesized_expression "(uVar3 & 2)" ( (binary_expression "uVar3 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }" { (expression_statement "cVar6 = FUN_001f72a0(param_2);" (assignment_expression "cVar6 = FUN_001f72a0(param_2)" identifier = (call_expression "FUN_001f72a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "cVar7 = FUN_001f72a0(param_3);" (assignment_expression "cVar7 = FUN_001f72a0(param_3)" identifier = (call_expression "FUN_001f72a0(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }" if (parenthesized_expression "(cVar6 != cVar7)" ( (binary_expression "cVar6 != cVar7" identifier != identifier) )) (compound_statement "{\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }" { (expression_statement "uVar10 = FUN_001f72a0(param_2);" (assignment_expression "uVar10 = FUN_001f72a0(param_2)" identifier = (call_expression "FUN_001f72a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (return_statement "return uVar10;" return identifier ;) })) })) (if_statement "if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }" if (parenthesized_expression "((uVar14 & 1) != 0)" ( (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return uVar3 & 1;\n            }" { (return_statement "return uVar3 & 1;" return (binary_expression "uVar3 & 1" identifier & number_literal) ;) })) (if_statement "if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }" if (parenthesized_expression "((uVar14 & 4) != 0)" ( (binary_expression "(uVar14 & 4) != 0" (parenthesized_expression "(uVar14 & 4)" ( (binary_expression "uVar14 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return (uVar3 >> 2 ^ 1) & 1;\n            }" { (return_statement "return (uVar3 >> 2 ^ 1) & 1;" return (binary_expression "(uVar3 >> 2 ^ 1) & 1" (parenthesized_expression "(uVar3 >> 2 ^ 1)" ( (binary_expression "uVar3 >> 2 ^ 1" (binary_expression "uVar3 >> 2" identifier >> number_literal) ^ number_literal) )) & number_literal) ;) })) (if_statement "if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }" if (parenthesized_expression "((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))" ( (binary_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" (parenthesized_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0')" ( (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" * (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" ( (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" ( (binary_expression "*(long *)(*(long *)(param_1 + 8) + 0x168) == 0" (pointer_expression "*(long *)(*(long *)(param_1 + 8) + 0x168)" * (cast_expression "(long *)(*(long *)(param_1 + 8) + 0x168)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x168)" ( (binary_expression "*(long *)(param_1 + 8) + 0x168" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }" { (expression_statement "lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar4 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }" { comment (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }" if (parenthesized_expression "(((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0'))" ( (binary_expression "((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')" (parenthesized_expression "((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0'))" ( (binary_expression "(*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')" (parenthesized_expression "(*(long *)(lVar4 + 0x9298) == 0)" ( (binary_expression "*(long *)(lVar4 + 0x9298) == 0" (pointer_expression "*(long *)(lVar4 + 0x9298)" * (cast_expression "(long *)(lVar4 + 0x9298)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x9298)" ( (binary_expression "lVar4 + 0x9298" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(param_1 + 0x372) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x372) == '\0'" (pointer_expression "*(char *)(param_1 + 0x372)" * (cast_expression "(char *)(param_1 + 0x372)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x372)" ( (binary_expression "param_1 + 0x372" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(char *)(lVar4 + 0x8f19) == '\0')" ( (binary_expression "*(char *)(lVar4 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar4 + 0x8f19)" * (cast_expression "(char *)(lVar4 + 0x8f19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x8f19)" ( (binary_expression "lVar4 + 0x8f19" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }" { comment (expression_statement "FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xebd,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) })) })) }))) })) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: bool segment_precedes(Layout * this, Output_segment * seg1,\n   Output_segment * seg2) */\n\nbool __thiscall\ngold::Layout::segment_precedes(Layout *this,Output_segment *seg1,Output_segment *seg2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  General_options *pGVar3;\n  byte bVar4;\n  bool bVar5;\n  bool bVar6;\n  uint uVar7;\n  uint uVar8;\n  ulong uVar9;\n  uint64_t uVar10;\n  byte bVar11;\n  uint uVar12;\n  \n  if (seg1 == seg2) {\n    return false;\n  }\n  uVar7 = seg1->type_;\n  uVar8 = seg2->type_;\n  if (uVar7 == 6) {\n    if (uVar8 == 6) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return true;\n  }\n  if (uVar8 != 6) {\n    if (uVar7 == 3) {\n      if (uVar8 == 3) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return true;\n    }\n    if (uVar8 != 3) {\n      if ((uVar7 == 1) && (uVar8 != 1)) {\n        return true;\n      }\n      if ((uVar8 != 1) || (uVar7 == 1)) {\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return false;\n}\n\n" comment comment comment (function_definition "bool __thiscall\ngold::Layout::segment_precedes(Layout *this,Output_segment *seg1,Output_segment *seg2)\n\n{\n  byte bVar1;\n  uint uVar2;\n  General_options *pGVar3;\n  byte bVar4;\n  bool bVar5;\n  bool bVar6;\n  uint uVar7;\n  uint uVar8;\n  ulong uVar9;\n  uint64_t uVar10;\n  byte bVar11;\n  uint uVar12;\n  \n  if (seg1 == seg2) {\n    return false;\n  }\n  uVar7 = seg1->type_;\n  uVar8 = seg2->type_;\n  if (uVar7 == 6) {\n    if (uVar8 == 6) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return true;\n  }\n  if (uVar8 != 6) {\n    if (uVar7 == 3) {\n      if (uVar8 == 3) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return true;\n    }\n    if (uVar8 != 3) {\n      if ((uVar7 == 1) && (uVar8 != 1)) {\n        return true;\n      }\n      if ((uVar8 != 1) || (uVar7 == 1)) {\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return false;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Layout::" identifier : : identifier : :) (function_declarator "segment_precedes(Layout *this,Output_segment *seg1,Output_segment *seg2)" identifier (parameter_list "(Layout *this,Output_segment *seg1,Output_segment *seg2)" ( (parameter_declaration "Layout *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_segment *seg1" type_identifier (pointer_declarator "*seg1" * identifier)) , (parameter_declaration "Output_segment *seg2" type_identifier (pointer_declarator "*seg2" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  General_options *pGVar3;\n  byte bVar4;\n  bool bVar5;\n  bool bVar6;\n  uint uVar7;\n  uint uVar8;\n  ulong uVar9;\n  uint64_t uVar10;\n  byte bVar11;\n  uint uVar12;\n  \n  if (seg1 == seg2) {\n    return false;\n  }\n  uVar7 = seg1->type_;\n  uVar8 = seg2->type_;\n  if (uVar7 == 6) {\n    if (uVar8 == 6) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return true;\n  }\n  if (uVar8 != 6) {\n    if (uVar7 == 3) {\n      if (uVar8 == 3) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return true;\n    }\n    if (uVar8 != 3) {\n      if ((uVar7 == 1) && (uVar8 != 1)) {\n        return true;\n      }\n      if ((uVar8 != 1) || (uVar7 == 1)) {\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return false;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "General_options *pGVar3;" type_identifier (pointer_declarator "*pGVar3" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "bool bVar5;" primitive_type identifier ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "uint64_t uVar10;" primitive_type identifier ;) (declaration "byte bVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (if_statement "if (seg1 == seg2) {\n    return false;\n  }" if (parenthesized_expression "(seg1 == seg2)" ( (binary_expression "seg1 == seg2" identifier == identifier) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (expression_statement "uVar7 = seg1->type_;" (assignment_expression "uVar7 = seg1->type_" identifier = (field_expression "seg1->type_" identifier -> field_identifier)) ;) (expression_statement "uVar8 = seg2->type_;" (assignment_expression "uVar8 = seg2->type_" identifier = (field_expression "seg2->type_" identifier -> field_identifier)) ;) (if_statement "if (uVar7 == 6) {\n    if (uVar8 == 6) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return true;\n  }" if (parenthesized_expression "(uVar7 == 6)" ( (binary_expression "uVar7 == 6" identifier == number_literal) )) (compound_statement "{\n    if (uVar8 == 6) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return true;\n  }" { (if_statement "if (uVar8 == 6) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");\n    }" if (parenthesized_expression "(uVar8 == 6)" ( (binary_expression "uVar8 == 6" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0xe44,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe44,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (return_statement "return true;" return true ;) })) (if_statement "if (uVar8 != 6) {\n    if (uVar7 == 3) {\n      if (uVar8 == 3) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return true;\n    }\n    if (uVar8 != 3) {\n      if ((uVar7 == 1) && (uVar8 != 1)) {\n        return true;\n      }\n      if ((uVar8 != 1) || (uVar7 == 1)) {\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(uVar8 != 6)" ( (binary_expression "uVar8 != 6" identifier != number_literal) )) (compound_statement "{\n    if (uVar7 == 3) {\n      if (uVar8 == 3) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return true;\n    }\n    if (uVar8 != 3) {\n      if ((uVar7 == 1) && (uVar8 != 1)) {\n        return true;\n      }\n      if ((uVar8 != 1) || (uVar7 == 1)) {\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (if_statement "if (uVar7 == 3) {\n      if (uVar8 == 3) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return true;\n    }" if (parenthesized_expression "(uVar7 == 3)" ( (binary_expression "uVar7 == 3" identifier == number_literal) )) (compound_statement "{\n      if (uVar8 == 3) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return true;\n    }" { (if_statement "if (uVar8 == 3) {\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }" if (parenthesized_expression "(uVar8 == 3)" ( (binary_expression "uVar8 == 3" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0xe4e,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe4e,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (return_statement "return true;" return true ;) })) (if_statement "if (uVar8 != 3) {\n      if ((uVar7 == 1) && (uVar8 != 1)) {\n        return true;\n      }\n      if ((uVar8 != 1) || (uVar7 == 1)) {\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(uVar8 != 3)" ( (binary_expression "uVar8 != 3" identifier != number_literal) )) (compound_statement "{\n      if ((uVar7 == 1) && (uVar8 != 1)) {\n        return true;\n      }\n      if ((uVar8 != 1) || (uVar7 == 1)) {\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }" { (if_statement "if ((uVar7 == 1) && (uVar8 != 1)) {\n        return true;\n      }" if (parenthesized_expression "((uVar7 == 1) && (uVar8 != 1))" ( (binary_expression "(uVar7 == 1) && (uVar8 != 1)" (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) && (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) ))) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (if_statement "if ((uVar8 != 1) || (uVar7 == 1)) {\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((uVar8 != 1) || (uVar7 == 1))" ( (binary_expression "(uVar8 != 1) || (uVar7 == 1)" (parenthesized_expression "(uVar8 != 1)" ( (binary_expression "uVar8 != 1" identifier != number_literal) )) || (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }" { (if_statement "if ((uVar7 == 7) && (uVar8 != 7)) {\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }\n        else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" if (parenthesized_expression "((uVar7 == 7) && (uVar8 != 7))" ( (binary_expression "(uVar7 == 7) && (uVar8 != 7)" (parenthesized_expression "(uVar7 == 7)" ( (binary_expression "uVar7 == 7" identifier == number_literal) )) && (parenthesized_expression "(uVar8 != 7)" ( (binary_expression "uVar8 != 7" identifier != number_literal) ))) )) (compound_statement "{\n          if (uVar8 == 0x6474e552) {\n            return true;\n          }\n        }" { (if_statement "if (uVar8 == 0x6474e552) {\n            return true;\n          }" if (parenthesized_expression "(uVar8 == 0x6474e552)" ( (binary_expression "uVar8 == 0x6474e552" identifier == number_literal) )) (compound_statement "{\n            return true;\n          }" { (return_statement "return true;" return true ;) })) }) (else_clause "else {\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" else (compound_statement "{\n          if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }\n          if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" { (if_statement "if ((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)) {\n            return true;\n          }" if (parenthesized_expression "((uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7))" ( (binary_expression "(uVar7 != 7 && uVar7 != 0x6474e552) && (uVar8 == 7)" (parenthesized_expression "(uVar7 != 7 && uVar7 != 0x6474e552)" ( (binary_expression "uVar7 != 7 && uVar7 != 0x6474e552" (binary_expression "uVar7 != 7" identifier != number_literal) && (binary_expression "uVar7 != 0x6474e552" identifier != number_literal)) )) && (parenthesized_expression "(uVar8 == 7)" ( (binary_expression "uVar8 == 7" identifier == number_literal) ))) )) (compound_statement "{\n            return true;\n          }" { (return_statement "return true;" return true ;) })) (if_statement "if ((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)) {\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }" if (parenthesized_expression "((uVar7 != 0x6474e552) || (uVar8 == 0x6474e552))" ( (binary_expression "(uVar7 != 0x6474e552) || (uVar8 == 0x6474e552)" (parenthesized_expression "(uVar7 != 0x6474e552)" ( (binary_expression "uVar7 != 0x6474e552" identifier != number_literal) )) || (parenthesized_expression "(uVar8 == 0x6474e552)" ( (binary_expression "uVar8 == 0x6474e552" identifier == number_literal) ))) )) (compound_statement "{\n            if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }\n            uVar2 = seg1->flags_;\n            uVar12 = seg2->flags_;\n            if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }\n            bVar11 = seg2->field_0x2f8;\n            bVar1 = seg1->field_0x2f8;\n            bVar4 = bVar11 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }\n            bVar11 = bVar11 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }\n            uVar12 = uVar12 ^ uVar2;\n            if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }\n            if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }\n            if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }\n            if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }\n            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }" { (if_statement "if ((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)) {\n              return true;\n            }" if (parenthesized_expression "((uVar8 == 0x6474e552) && (uVar7 != 0x6474e552))" ( (binary_expression "(uVar8 == 0x6474e552) && (uVar7 != 0x6474e552)" (parenthesized_expression "(uVar8 == 0x6474e552)" ( (binary_expression "uVar8 == 0x6474e552" identifier == number_literal) )) && (parenthesized_expression "(uVar7 != 0x6474e552)" ( (binary_expression "uVar7 != 0x6474e552" identifier != number_literal) ))) )) (compound_statement "{\n              return true;\n            }" { (return_statement "return true;" return true ;) })) (expression_statement "uVar2 = seg1->flags_;" (assignment_expression "uVar2 = seg1->flags_" identifier = (field_expression "seg1->flags_" identifier -> field_identifier)) ;) (expression_statement "uVar12 = seg2->flags_;" (assignment_expression "uVar12 = seg2->flags_" identifier = (field_expression "seg2->flags_" identifier -> field_identifier)) ;) (if_statement "if (uVar7 != 1) {\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }" if (parenthesized_expression "(uVar7 != 1)" ( (binary_expression "uVar7 != 1" identifier != number_literal) )) (compound_statement "{\n              if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }\n              if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }\n              return uVar2 < uVar12;\n            }" { (if_statement "if (uVar7 != uVar8) {\n                return uVar7 < uVar8;\n              }" if (parenthesized_expression "(uVar7 != uVar8)" ( (binary_expression "uVar7 != uVar8" identifier != identifier) )) (compound_statement "{\n                return uVar7 < uVar8;\n              }" { (return_statement "return uVar7 < uVar8;" return (binary_expression "uVar7 < uVar8" identifier < identifier) ;) })) (if_statement "if ((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }" if (parenthesized_expression "((uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0))))" ( (binary_expression "(uVar2 == uVar12) &&\n                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))" (parenthesized_expression "(uVar2 == uVar12)" ( (binary_expression "uVar2 == uVar12" identifier == identifier) )) && (parenthesized_expression "(((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)))" ( (parenthesized_expression "((this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0))" ( (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ == false ||\n                  ((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)" (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ == false" (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) || (parenthesized_expression "((this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0)" ( (binary_expression "(this->script_options_->script_sections_).phdrs_elements_ ==\n                   (Phdrs_elements *)0x0" (field_expression "(this->script_options_->script_sections_).phdrs_elements_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == (cast_expression "(Phdrs_elements *)0x0" ( (type_descriptor "Phdrs_elements *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0xe7b,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe7b,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (return_statement "return uVar2 < uVar12;" return (binary_expression "uVar2 < uVar12" identifier < identifier) ;) })) (expression_statement "bVar11 = seg2->field_0x2f8;" (assignment_expression "bVar11 = seg2->field_0x2f8" identifier = (field_expression "seg2->field_0x2f8" identifier -> field_identifier)) ;) (expression_statement "bVar1 = seg1->field_0x2f8;" (assignment_expression "bVar1 = seg1->field_0x2f8" identifier = (field_expression "seg1->field_0x2f8" identifier -> field_identifier)) ;) (expression_statement "bVar4 = bVar11 >> 1 & 1;" (assignment_expression "bVar4 = bVar11 >> 1 & 1" identifier = (binary_expression "bVar11 >> 1 & 1" (binary_expression "bVar11 >> 1" identifier >> number_literal) & number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n              if (bVar4 != 0) {\n                return false;\n              }\n            }\n            else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (bVar4 != 0) {\n                return false;\n              }\n            }" { (if_statement "if (bVar4 != 0) {\n                return false;\n              }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                return false;\n              }" { (return_statement "return false;" return false ;) })) }) (else_clause "else {\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }" else (compound_statement "{\n              if (bVar4 == 0) {\n                return true;\n              }\n              uVar7 = Output_segment::output_section_count(seg1);\n              uVar8 = Output_segment::output_section_count(seg2);\n              if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }\n              if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }\n              if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }\n              if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }\n              if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }\n              bVar11 = seg2->field_0x2f8;\n              bVar1 = seg1->field_0x2f8;\n            }" { (if_statement "if (bVar4 == 0) {\n                return true;\n              }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                return true;\n              }" { (return_statement "return true;" return true ;) })) (ERROR "uVar7 = Output_segment::" (assignment_expression "uVar7 = Output_segment" identifier = identifier) : :) (expression_statement "output_section_count(seg1);" (call_expression "output_section_count(seg1)" identifier (argument_list "(seg1)" ( identifier ))) ;) (ERROR "uVar8 = Output_segment::" (assignment_expression "uVar8 = Output_segment" identifier = identifier) : :) (expression_statement "output_section_count(seg2);" (call_expression "output_section_count(seg2)" identifier (argument_list "(seg2)" ( identifier ))) ;) (if_statement "if ((uVar7 == 0) && (uVar8 != 0)) {\n                return true;\n              }" if (parenthesized_expression "((uVar7 == 0) && (uVar8 != 0))" ( (binary_expression "(uVar7 == 0) && (uVar8 != 0)" (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                return true;\n              }" { (return_statement "return true;" return true ;) })) (if_statement "if ((uVar7 != 0) && (uVar8 == 0)) {\n                return false;\n              }" if (parenthesized_expression "((uVar7 != 0) && (uVar8 == 0))" ( (binary_expression "(uVar7 != 0) && (uVar8 == 0)" (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                return false;\n              }" { (return_statement "return false;" return false ;) })) (if_statement "if ((seg1->field_0x2f8 & 2) == 0) {\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }\n              else {\n                uVar10 = seg1->paddr_;\n              }" if (parenthesized_expression "((seg1->field_0x2f8 & 2) == 0)" ( (binary_expression "(seg1->field_0x2f8 & 2) == 0" (parenthesized_expression "(seg1->field_0x2f8 & 2)" ( (binary_expression "seg1->field_0x2f8 & 2" (field_expression "seg1->field_0x2f8" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar10 = Output_segment::first_section_load_address(seg1);\n              }" { (ERROR "uVar10 = Output_segment::" (assignment_expression "uVar10 = Output_segment" identifier = identifier) : :) (expression_statement "first_section_load_address(seg1);" (call_expression "first_section_load_address(seg1)" identifier (argument_list "(seg1)" ( identifier ))) ;) }) (else_clause "else {\n                uVar10 = seg1->paddr_;\n              }" else (compound_statement "{\n                uVar10 = seg1->paddr_;\n              }" { (expression_statement "uVar10 = seg1->paddr_;" (assignment_expression "uVar10 = seg1->paddr_" identifier = (field_expression "seg1->paddr_" identifier -> field_identifier)) ;) }))) (if_statement "if ((seg2->field_0x2f8 & 2) == 0) {\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }\n              else {\n                uVar9 = seg2->paddr_;\n              }" if (parenthesized_expression "((seg2->field_0x2f8 & 2) == 0)" ( (binary_expression "(seg2->field_0x2f8 & 2) == 0" (parenthesized_expression "(seg2->field_0x2f8 & 2)" ( (binary_expression "seg2->field_0x2f8 & 2" (field_expression "seg2->field_0x2f8" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar9 = Output_segment::first_section_load_address(seg2);\n              }" { (ERROR "uVar9 = Output_segment::" (assignment_expression "uVar9 = Output_segment" identifier = identifier) : :) (expression_statement "first_section_load_address(seg2);" (call_expression "first_section_load_address(seg2)" identifier (argument_list "(seg2)" ( identifier ))) ;) }) (else_clause "else {\n                uVar9 = seg2->paddr_;\n              }" else (compound_statement "{\n                uVar9 = seg2->paddr_;\n              }" { (expression_statement "uVar9 = seg2->paddr_;" (assignment_expression "uVar9 = seg2->paddr_" identifier = (field_expression "seg2->paddr_" identifier -> field_identifier)) ;) }))) (if_statement "if (uVar10 != uVar9) {\n                return uVar10 < uVar9;\n              }" if (parenthesized_expression "(uVar10 != uVar9)" ( (binary_expression "uVar10 != uVar9" identifier != identifier) )) (compound_statement "{\n                return uVar10 < uVar9;\n              }" { (return_statement "return uVar10 < uVar9;" return (binary_expression "uVar10 < uVar9" identifier < identifier) ;) })) (expression_statement "bVar11 = seg2->field_0x2f8;" (assignment_expression "bVar11 = seg2->field_0x2f8" identifier = (field_expression "seg2->field_0x2f8" identifier -> field_identifier)) ;) (expression_statement "bVar1 = seg1->field_0x2f8;" (assignment_expression "bVar1 = seg1->field_0x2f8" identifier = (field_expression "seg1->field_0x2f8" identifier -> field_identifier)) ;) }))) (expression_statement "bVar11 = bVar11 >> 2 & 1;" (assignment_expression "bVar11 = bVar11 >> 2 & 1" identifier = (binary_expression "bVar11 >> 2 & 1" (binary_expression "bVar11 >> 2" identifier >> number_literal) & number_literal)) ;) (if_statement "if ((bVar1 & 4) == 0) {\n              if (bVar11 != 0) {\n                return true;\n              }\n            }\n            else if (bVar11 == 0) {\n              return false;\n            }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (bVar11 != 0) {\n                return true;\n              }\n            }" { (if_statement "if (bVar11 != 0) {\n                return true;\n              }" if (parenthesized_expression "(bVar11 != 0)" ( (binary_expression "bVar11 != 0" identifier != number_literal) )) (compound_statement "{\n                return true;\n              }" { (return_statement "return true;" return true ;) })) }) (else_clause "else if (bVar11 == 0) {\n              return false;\n            }" else (if_statement "if (bVar11 == 0) {\n              return false;\n            }" if (parenthesized_expression "(bVar11 == 0)" ( (binary_expression "bVar11 == 0" identifier == number_literal) )) (compound_statement "{\n              return false;\n            }" { (return_statement "return false;" return false ;) })))) (expression_statement "uVar12 = uVar12 ^ uVar2;" (assignment_expression "uVar12 = uVar12 ^ uVar2" identifier = (binary_expression "uVar12 ^ uVar2" identifier ^ identifier)) ;) (if_statement "if ((uVar12 & 2) != 0) {\n              return (uVar2 & 2) == 0;\n            }" if (parenthesized_expression "((uVar12 & 2) != 0)" ( (binary_expression "(uVar12 & 2) != 0" (parenthesized_expression "(uVar12 & 2)" ( (binary_expression "uVar12 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return (uVar2 & 2) == 0;\n            }" { (return_statement "return (uVar2 & 2) == 0;" return (binary_expression "(uVar2 & 2) == 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) == number_literal) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              bVar5 = Output_segment::has_any_data_sections(seg1);\n              bVar6 = Output_segment::has_any_data_sections(seg2);\n              if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }\n            }" { (ERROR "bVar5 = Output_segment::" (assignment_expression "bVar5 = Output_segment" identifier = identifier) : :) (expression_statement "has_any_data_sections(seg1);" (call_expression "has_any_data_sections(seg1)" identifier (argument_list "(seg1)" ( identifier ))) ;) (ERROR "bVar6 = Output_segment::" (assignment_expression "bVar6 = Output_segment" identifier = identifier) : :) (expression_statement "has_any_data_sections(seg2);" (call_expression "has_any_data_sections(seg2)" identifier (argument_list "(seg2)" ( identifier ))) ;) (if_statement "if (bVar5 != bVar6) {\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }" if (parenthesized_expression "(bVar5 != bVar6)" ( (binary_expression "bVar5 != bVar6" identifier != identifier) )) (compound_statement "{\n                bVar5 = Output_segment::has_any_data_sections(seg1);\n                return bVar5;\n              }" { (ERROR "bVar5 = Output_segment::" (assignment_expression "bVar5 = Output_segment" identifier = identifier) : :) (expression_statement "has_any_data_sections(seg1);" (call_expression "has_any_data_sections(seg1)" identifier (argument_list "(seg1)" ( identifier ))) ;) (return_statement "return bVar5;" return identifier ;) })) })) (if_statement "if ((uVar12 & 1) != 0) {\n              return (bool)((byte)uVar2 & 1);\n            }" if (parenthesized_expression "((uVar12 & 1) != 0)" ( (binary_expression "(uVar12 & 1) != 0" (parenthesized_expression "(uVar12 & 1)" ( (binary_expression "uVar12 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return (bool)((byte)uVar2 & 1);\n            }" { (return_statement "return (bool)((byte)uVar2 & 1);" return (cast_expression "(bool)((byte)uVar2 & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "((byte)uVar2 & 1)" ( (binary_expression "(byte)uVar2 & 1" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ;) })) (if_statement "if ((uVar12 & 4) != 0) {\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }" if (parenthesized_expression "((uVar12 & 4) != 0)" ( (binary_expression "(uVar12 & 4) != 0" (parenthesized_expression "(uVar12 & 4)" ( (binary_expression "uVar12 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);\n            }" { (return_statement "return (bool)(((byte)(uVar2 >> 2) ^ 1) & 1);" return (cast_expression "(bool)(((byte)(uVar2 >> 2) ^ 1) & 1)" ( (type_descriptor "bool" primitive_type) ) (parenthesized_expression "(((byte)(uVar2 >> 2) ^ 1) & 1)" ( (binary_expression "((byte)(uVar2 >> 2) ^ 1) & 1" (parenthesized_expression "((byte)(uVar2 >> 2) ^ 1)" ( (binary_expression "(byte)(uVar2 >> 2) ^ 1" (call_expression "(byte)(uVar2 >> 2)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar2 >> 2)" ( (binary_expression "uVar2 >> 2" identifier >> number_literal) ))) ^ number_literal) )) & number_literal) ))) ;) })) (if_statement "if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))\n            {\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }" if (parenthesized_expression "(((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0))" ( (binary_expression "((this->script_options_->script_sections_).saw_sections_clause_ == false) ||\n               ((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)" (parenthesized_expression "((this->script_options_->script_sections_).saw_sections_clause_ == false)" ( (binary_expression "(this->script_options_->script_sections_).saw_sections_clause_ == false" (field_expression "(this->script_options_->script_sections_).saw_sections_clause_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == false) )) || (parenthesized_expression "((this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0)" ( (binary_expression "(this->script_options_->script_sections_).phdrs_elements_ == (Phdrs_elements *)0x0" (field_expression "(this->script_options_->script_sections_).phdrs_elements_" (parenthesized_expression "(this->script_options_->script_sections_)" ( (field_expression "this->script_options_->script_sections_" (field_expression "this->script_options_" identifier -> field_identifier) -> field_identifier) )) . field_identifier) == (cast_expression "(Phdrs_elements *)0x0" ( (type_descriptor "Phdrs_elements *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n              pGVar3 = parameters->options_;\n              if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }\n              if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }" { (expression_statement "pGVar3 = parameters->options_;" (assignment_expression "pGVar3 = parameters->options_" identifier = (field_expression "parameters->options_" identifier -> field_identifier)) ;) (if_statement "if (pGVar3 == (General_options *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }" if (parenthesized_expression "(pGVar3 == (General_options *)0x0)" ( (binary_expression "pGVar3 == (General_options *)0x0" identifier == (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/parameters.h",0x5c,"options");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/parameters.h",0x5c,"options");" (call_expression "do_gold_unreachable("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if ((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }" if (parenthesized_expression "((((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false))" ( (binary_expression "(((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)) &&\n                 ((pGVar3->text_unlikely_segment_).value == false)" (parenthesized_expression "(((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false))" ( (binary_expression "((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)\n                  && (this->unique_segment_for_sections_specified_ == false)" (parenthesized_expression "((pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)" ( (binary_expression "(pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0" (field_expression "(pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count" (field_expression "(pGVar3->section_starts_)._M_t._M_impl.super__Rb_tree_header" (field_expression "(pGVar3->section_starts_)._M_t._M_impl" (field_expression "(pGVar3->section_starts_)._M_t" (parenthesized_expression "(pGVar3->section_starts_)" ( (field_expression "pGVar3->section_starts_" identifier -> field_identifier) )) . field_identifier) . field_identifier) . field_identifier) . field_identifier) == number_literal) )) && (parenthesized_expression "(this->unique_segment_for_sections_specified_ == false)" ( (binary_expression "this->unique_segment_for_sections_specified_ == false" (field_expression "this->unique_segment_for_sections_specified_" identifier -> field_identifier) == false) ))) )) && (parenthesized_expression "((pGVar3->text_unlikely_segment_).value == false)" ( (binary_expression "(pGVar3->text_unlikely_segment_).value == false" (field_expression "(pGVar3->text_unlikely_segment_).value" (parenthesized_expression "(pGVar3->text_unlikely_segment_)" ( (field_expression "pGVar3->text_unlikely_segment_" identifier -> field_identifier) )) . field_identifier) == false) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");\n              }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0xebd,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xebd,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) })) })) }))) })) })) })) (return_statement "return false;" return false ;) })))
(translation_unit "uint FUN_001a5c70(long param_1,long param_2,long param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  byte bVar13;\n  uint uVar14;\n  bool bVar15;\n  \n  if (param_2 == param_3) {\n    return 0;\n  }\n  uVar10 = *(uint *)(param_2 + 0x2f0);\n  uVar2 = *(uint *)(param_3 + 0x2f0);\n  if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }\n  if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return 0;\n}\n\n" (function_definition "uint FUN_001a5c70(long param_1,long param_2,long param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  byte bVar13;\n  uint uVar14;\n  bool bVar15;\n  \n  if (param_2 == param_3) {\n    return 0;\n  }\n  uVar10 = *(uint *)(param_2 + 0x2f0);\n  uVar2 = *(uint *)(param_3 + 0x2f0);\n  if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }\n  if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return 0;\n}" type_identifier (function_declarator "FUN_001a5c70(long param_1,long param_2,long param_3)" identifier (parameter_list "(long param_1,long param_2,long param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  byte bVar13;\n  uint uVar14;\n  bool bVar15;\n  \n  if (param_2 == param_3) {\n    return 0;\n  }\n  uVar10 = *(uint *)(param_2 + 0x2f0);\n  uVar2 = *(uint *)(param_3 + 0x2f0);\n  if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }\n  if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return 0;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "char cVar6;" primitive_type identifier ;) (declaration "char cVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (if_statement "if (param_2 == param_3) {\n    return 0;\n  }" if (parenthesized_expression "(param_2 == param_3)" ( (binary_expression "param_2 == param_3" identifier == identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar10 = *(uint *)(param_2 + 0x2f0);" (assignment_expression "uVar10 = *(uint *)(param_2 + 0x2f0)" identifier = (pointer_expression "*(uint *)(param_2 + 0x2f0)" * (cast_expression "(uint *)(param_2 + 0x2f0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f0)" ( (binary_expression "param_2 + 0x2f0" identifier + number_literal) ))))) ;) (expression_statement "uVar2 = *(uint *)(param_3 + 0x2f0);" (assignment_expression "uVar2 = *(uint *)(param_3 + 0x2f0)" identifier = (pointer_expression "*(uint *)(param_3 + 0x2f0)" * (cast_expression "(uint *)(param_3 + 0x2f0)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f0)" ( (binary_expression "param_3 + 0x2f0" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }" if (parenthesized_expression "(uVar10 == 6)" ( (binary_expression "uVar10 == 6" identifier == number_literal) )) (compound_statement "{\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }" { (if_statement "if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }" if (parenthesized_expression "(uVar2 == 6)" ( (binary_expression "uVar2 == 6" identifier == number_literal) )) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }" { (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe44,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(uVar2 != 6)" ( (binary_expression "uVar2 != 6" identifier != number_literal) )) (compound_statement "{\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }" { (if_statement "if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }" if (parenthesized_expression "(uVar10 == 3)" ( (binary_expression "uVar10 == 3" identifier == number_literal) )) (compound_statement "{\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }" { (if_statement "if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }" if (parenthesized_expression "(uVar2 == 3)" ( (binary_expression "uVar2 == 3" identifier == number_literal) )) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }" { (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe4e,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (return_statement "return 1;" return number_literal ;) })) (if_statement "if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }" if (parenthesized_expression "(uVar2 != 3)" ( (binary_expression "uVar2 != 3" identifier != number_literal) )) (compound_statement "{\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }" { (if_statement "if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }" if (parenthesized_expression "((uVar10 == 1) && (uVar2 != 1))" ( (binary_expression "(uVar10 == 1) && (uVar2 != 1)" (parenthesized_expression "(uVar10 == 1)" ( (binary_expression "uVar10 == 1" identifier == number_literal) )) && (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) ))) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }" if (parenthesized_expression "((uVar2 != 1) || (uVar10 == 1))" ( (binary_expression "(uVar2 != 1) || (uVar10 == 1)" (parenthesized_expression "(uVar2 != 1)" ( (binary_expression "uVar2 != 1" identifier != number_literal) )) || (parenthesized_expression "(uVar10 == 1)" ( (binary_expression "uVar10 == 1" identifier == number_literal) ))) )) (compound_statement "{\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }" { (if_statement "if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" if (parenthesized_expression "((uVar10 == 7) && (uVar2 != 7))" ( (binary_expression "(uVar10 == 7) && (uVar2 != 7)" (parenthesized_expression "(uVar10 == 7)" ( (binary_expression "uVar10 == 7" identifier == number_literal) )) && (parenthesized_expression "(uVar2 != 7)" ( (binary_expression "uVar2 != 7" identifier != number_literal) ))) )) (compound_statement "{\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }" { (if_statement "if (uVar2 == 0x6474e552) {\n            return 1;\n          }" if (parenthesized_expression "(uVar2 == 0x6474e552)" ( (binary_expression "uVar2 == 0x6474e552" identifier == number_literal) )) (compound_statement "{\n            return 1;\n          }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" else (compound_statement "{\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" { (if_statement "if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }" if (parenthesized_expression "((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7))" ( (binary_expression "(uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)" (parenthesized_expression "(uVar10 != 7 && uVar10 != 0x6474e552)" ( (binary_expression "uVar10 != 7 && uVar10 != 0x6474e552" (binary_expression "uVar10 != 7" identifier != number_literal) && (binary_expression "uVar10 != 0x6474e552" identifier != number_literal)) )) && (parenthesized_expression "(uVar2 == 7)" ( (binary_expression "uVar2 == 7" identifier == number_literal) ))) )) (compound_statement "{\n            return 1;\n          }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }" if (parenthesized_expression "((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552))" ( (binary_expression "(uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)" (parenthesized_expression "(uVar10 != 0x6474e552)" ( (binary_expression "uVar10 != 0x6474e552" identifier != number_literal) )) || (parenthesized_expression "(uVar2 == 0x6474e552)" ( (binary_expression "uVar2 == 0x6474e552" identifier == number_literal) ))) )) (compound_statement "{\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }" { (if_statement "if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }" if (parenthesized_expression "((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552))" ( (binary_expression "(uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)" (parenthesized_expression "(uVar2 == 0x6474e552)" ( (binary_expression "uVar2 == 0x6474e552" identifier == number_literal) )) && (parenthesized_expression "(uVar10 != 0x6474e552)" ( (binary_expression "uVar10 != 0x6474e552" identifier != number_literal) ))) )) (compound_statement "{\n              return 1;\n            }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "uVar3 = *(uint *)(param_2 + 0x2f4);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x2f4)" identifier = (pointer_expression "*(uint *)(param_2 + 0x2f4)" * (cast_expression "(uint *)(param_2 + 0x2f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f4)" ( (binary_expression "param_2 + 0x2f4" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = *(uint *)(param_3 + 0x2f4);" (assignment_expression "uVar14 = *(uint *)(param_3 + 0x2f4)" identifier = (pointer_expression "*(uint *)(param_3 + 0x2f4)" * (cast_expression "(uint *)(param_3 + 0x2f4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f4)" ( (binary_expression "param_3 + 0x2f4" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }" if (parenthesized_expression "(uVar10 != 1)" ( (binary_expression "uVar10 != 1" identifier != number_literal) )) (compound_statement "{\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }" { (expression_statement "bVar15 = uVar10 < uVar2;" (assignment_expression "bVar15 = uVar10 < uVar2" identifier = (binary_expression "uVar10 < uVar2" identifier < identifier)) ;) (if_statement "if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }" if (parenthesized_expression "(uVar10 == uVar2)" ( (binary_expression "uVar10 == uVar2" identifier == identifier) )) (compound_statement "{\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }" { (if_statement "if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }" if (parenthesized_expression "((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))))" ( (binary_expression "(uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))" (parenthesized_expression "(uVar3 == uVar14)" ( (binary_expression "uVar3 == uVar14" identifier == identifier) )) && (parenthesized_expression "((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))" ( (parenthesized_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))" ( (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" * (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" ( (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) || (parenthesized_expression "(*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" ( (binary_expression "*(long *)(*(long *)(param_1 + 8) + 0x168) == 0" (pointer_expression "*(long *)(*(long *)(param_1 + 8) + 0x168)" * (cast_expression "(long *)(*(long *)(param_1 + 8) + 0x168)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x168)" ( (binary_expression "*(long *)(param_1 + 8) + 0x168" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) ))) )) (compound_statement "{\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }" { (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xe7b,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) (expression_statement "bVar15 = uVar3 < uVar14;" (assignment_expression "bVar15 = uVar3 < uVar14" identifier = (binary_expression "uVar3 < uVar14" identifier < identifier)) ;) })) (labeled_statement "LAB_001a5dab:\n              return (uint)bVar15;" statement_identifier : (return_statement "return (uint)bVar15;" return (cast_expression "(uint)bVar15" ( (type_descriptor "uint" type_identifier) ) identifier) ;)) })) (expression_statement "bVar13 = *(byte *)(param_3 + 0x2f8);" (assignment_expression "bVar13 = *(byte *)(param_3 + 0x2f8)" identifier = (pointer_expression "*(byte *)(param_3 + 0x2f8)" * (cast_expression "(byte *)(param_3 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f8)" ( (binary_expression "param_3 + 0x2f8" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)(param_2 + 0x2f8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 0x2f8)" identifier = (pointer_expression "*(byte *)(param_2 + 0x2f8)" * (cast_expression "(byte *)(param_2 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f8)" ( (binary_expression "param_2 + 0x2f8" identifier + number_literal) ))))) ;) (expression_statement "bVar5 = bVar13 >> 1 & 1;" (assignment_expression "bVar5 = bVar13 >> 1 & 1" identifier = (binary_expression "bVar13 >> 1 & 1" (binary_expression "bVar13 >> 1" identifier >> number_literal) & number_literal)) ;) (if_statement "if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }" { (if_statement "if (bVar5 != 0) {\n                return 0;\n              }" if (parenthesized_expression "(bVar5 != 0)" ( (binary_expression "bVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) }) (else_clause "else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" else (compound_statement "{\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" { (if_statement "if (bVar5 == 0) {\n                return 1;\n              }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                return 1;\n              }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "iVar8 = FUN_001f8220(param_2);" (assignment_expression "iVar8 = FUN_001f8220(param_2)" identifier = (call_expression "FUN_001f8220(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "iVar9 = FUN_001f8220(param_3);" (assignment_expression "iVar9 = FUN_001f8220(param_3)" identifier = (call_expression "FUN_001f8220(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }" if (parenthesized_expression "((iVar8 == 0) && (iVar9 != 0))" ( (binary_expression "(iVar8 == 0) && (iVar9 != 0)" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                return 1;\n              }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }" if (parenthesized_expression "((iVar8 != 0) && (iVar9 == 0))" ( (binary_expression "(iVar8 != 0) && (iVar9 == 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                return 0;\n              }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" if (parenthesized_expression "((*(byte *)(param_2 + 0x2f8) & 2) == 0)" ( (binary_expression "(*(byte *)(param_2 + 0x2f8) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x2f8) & 2)" ( (binary_expression "*(byte *)(param_2 + 0x2f8) & 2" (pointer_expression "*(byte *)(param_2 + 0x2f8)" * (cast_expression "(byte *)(param_2 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f8)" ( (binary_expression "param_2 + 0x2f8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar12 = FUN_001b19c0(param_2);\n              }" { (expression_statement "uVar12 = FUN_001b19c0(param_2);" (assignment_expression "uVar12 = FUN_001b19c0(param_2)" identifier = (call_expression "FUN_001b19c0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) }) (else_clause "else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" else (compound_statement "{\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" { (expression_statement "uVar12 = *(ulong *)(param_2 + 0x2c0);" (assignment_expression "uVar12 = *(ulong *)(param_2 + 0x2c0)" identifier = (pointer_expression "*(ulong *)(param_2 + 0x2c0)" * (cast_expression "(ulong *)(param_2 + 0x2c0)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2c0)" ( (binary_expression "param_2 + 0x2c0" identifier + number_literal) ))))) ;) }))) (if_statement "if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" if (parenthesized_expression "((*(byte *)(param_3 + 0x2f8) & 2) == 0)" ( (binary_expression "(*(byte *)(param_3 + 0x2f8) & 2) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x2f8) & 2)" ( (binary_expression "*(byte *)(param_3 + 0x2f8) & 2" (pointer_expression "*(byte *)(param_3 + 0x2f8)" * (cast_expression "(byte *)(param_3 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f8)" ( (binary_expression "param_3 + 0x2f8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                uVar11 = FUN_001b19c0(param_3);\n              }" { (expression_statement "uVar11 = FUN_001b19c0(param_3);" (assignment_expression "uVar11 = FUN_001b19c0(param_3)" identifier = (call_expression "FUN_001b19c0(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) }) (else_clause "else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" else (compound_statement "{\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" { (expression_statement "uVar11 = *(ulong *)(param_3 + 0x2c0);" (assignment_expression "uVar11 = *(ulong *)(param_3 + 0x2c0)" identifier = (pointer_expression "*(ulong *)(param_3 + 0x2c0)" * (cast_expression "(ulong *)(param_3 + 0x2c0)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2c0)" ( (binary_expression "param_3 + 0x2c0" identifier + number_literal) ))))) ;) }))) (expression_statement "bVar15 = uVar12 < uVar11;" (assignment_expression "bVar15 = uVar12 < uVar11" identifier = (binary_expression "uVar12 < uVar11" identifier < identifier)) ;) (if_statement "if (uVar12 != uVar11) goto LAB_001a5dab;" if (parenthesized_expression "(uVar12 != uVar11)" ( (binary_expression "uVar12 != uVar11" identifier != identifier) )) (goto_statement "goto LAB_001a5dab;" goto statement_identifier ;)) (expression_statement "bVar13 = *(byte *)(param_3 + 0x2f8);" (assignment_expression "bVar13 = *(byte *)(param_3 + 0x2f8)" identifier = (pointer_expression "*(byte *)(param_3 + 0x2f8)" * (cast_expression "(byte *)(param_3 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_3 + 0x2f8)" ( (binary_expression "param_3 + 0x2f8" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = *(byte *)(param_2 + 0x2f8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 0x2f8)" identifier = (pointer_expression "*(byte *)(param_2 + 0x2f8)" * (cast_expression "(byte *)(param_2 + 0x2f8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x2f8)" ( (binary_expression "param_2 + 0x2f8" identifier + number_literal) ))))) ;) }))) (expression_statement "bVar13 = bVar13 >> 2 & 1;" (assignment_expression "bVar13 = bVar13 >> 2 & 1" identifier = (binary_expression "bVar13 >> 2 & 1" (binary_expression "bVar13 >> 2" identifier >> number_literal) & number_literal)) ;) (if_statement "if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }" { (if_statement "if (bVar13 != 0) {\n                return 1;\n              }" if (parenthesized_expression "(bVar13 != 0)" ( (binary_expression "bVar13 != 0" identifier != number_literal) )) (compound_statement "{\n                return 1;\n              }" { (return_statement "return 1;" return number_literal ;) })) }) (else_clause "else if (bVar13 == 0) {\n              return 0;\n            }" else (if_statement "if (bVar13 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })))) (expression_statement "uVar14 = uVar14 ^ uVar3;" (assignment_expression "uVar14 = uVar14 ^ uVar3" identifier = (binary_expression "uVar14 ^ uVar3" identifier ^ identifier)) ;) (if_statement "if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }" if (parenthesized_expression "((uVar14 & 2) != 0)" ( (binary_expression "(uVar14 & 2) != 0" (parenthesized_expression "(uVar14 & 2)" ( (binary_expression "uVar14 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return (uint)((uVar3 & 2) == 0);\n            }" { (return_statement "return (uint)((uVar3 & 2) == 0);" return (call_expression "(uint)((uVar3 & 2) == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((uVar3 & 2) == 0)" ( (binary_expression "(uVar3 & 2) == 0" (parenthesized_expression "(uVar3 & 2)" ( (binary_expression "uVar3 & 2" identifier & number_literal) )) == number_literal) ))) ;) })) (if_statement "if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }" if (parenthesized_expression "((uVar3 & 2) != 0)" ( (binary_expression "(uVar3 & 2) != 0" (parenthesized_expression "(uVar3 & 2)" ( (binary_expression "uVar3 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }" { (expression_statement "cVar6 = FUN_001f72a0(param_2);" (assignment_expression "cVar6 = FUN_001f72a0(param_2)" identifier = (call_expression "FUN_001f72a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "cVar7 = FUN_001f72a0(param_3);" (assignment_expression "cVar7 = FUN_001f72a0(param_3)" identifier = (call_expression "FUN_001f72a0(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (if_statement "if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }" if (parenthesized_expression "(cVar6 != cVar7)" ( (binary_expression "cVar6 != cVar7" identifier != identifier) )) (compound_statement "{\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }" { (expression_statement "uVar10 = FUN_001f72a0(param_2);" (assignment_expression "uVar10 = FUN_001f72a0(param_2)" identifier = (call_expression "FUN_001f72a0(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) (return_statement "return uVar10;" return identifier ;) })) })) (if_statement "if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }" if (parenthesized_expression "((uVar14 & 1) != 0)" ( (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" ( (binary_expression "uVar14 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return uVar3 & 1;\n            }" { (return_statement "return uVar3 & 1;" return (binary_expression "uVar3 & 1" identifier & number_literal) ;) })) (if_statement "if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }" if (parenthesized_expression "((uVar14 & 4) != 0)" ( (binary_expression "(uVar14 & 4) != 0" (parenthesized_expression "(uVar14 & 4)" ( (binary_expression "uVar14 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n              return (uVar3 >> 2 ^ 1) & 1;\n            }" { (return_statement "return (uVar3 >> 2 ^ 1) & 1;" return (binary_expression "(uVar3 >> 2 ^ 1) & 1" (parenthesized_expression "(uVar3 >> 2 ^ 1)" ( (binary_expression "uVar3 >> 2 ^ 1" (binary_expression "uVar3 >> 2" identifier >> number_literal) ^ number_literal) )) & number_literal) ;) })) (if_statement "if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }" if (parenthesized_expression "((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))" ( (binary_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" (parenthesized_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0')" ( (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" * (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" ( (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" ( (binary_expression "*(long *)(*(long *)(param_1 + 8) + 0x168) == 0" (pointer_expression "*(long *)(*(long *)(param_1 + 8) + 0x168)" * (cast_expression "(long *)(*(long *)(param_1 + 8) + 0x168)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(long *)(param_1 + 8) + 0x168)" ( (binary_expression "*(long *)(param_1 + 8) + 0x168" (pointer_expression "*(long *)(param_1 + 8)" * (cast_expression "(long *)(param_1 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }" { (expression_statement "lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" identifier = (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" * (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" ( (binary_expression "PTR_DAT_0043e6b0 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }" if (parenthesized_expression "(lVar4 == 0)" ( (binary_expression "lVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }" { (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;) })) (if_statement "if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }" if (parenthesized_expression "(((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0'))" ( (binary_expression "((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')" (parenthesized_expression "((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0'))" ( (binary_expression "(*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')" (parenthesized_expression "(*(long *)(lVar4 + 0x9298) == 0)" ( (binary_expression "*(long *)(lVar4 + 0x9298) == 0" (pointer_expression "*(long *)(lVar4 + 0x9298)" * (cast_expression "(long *)(lVar4 + 0x9298)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x9298)" ( (binary_expression "lVar4 + 0x9298" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(*(char *)(param_1 + 0x372) == '\0')" ( (binary_expression "*(char *)(param_1 + 0x372) == '\0'" (pointer_expression "*(char *)(param_1 + 0x372)" * (cast_expression "(char *)(param_1 + 0x372)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x372)" ( (binary_expression "param_1 + 0x372" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(char *)(lVar4 + 0x8f19) == '\0')" ( (binary_expression "*(char *)(lVar4 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar4 + 0x8f19)" * (cast_expression "(char *)(lVar4 + 0x8f19)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar4 + 0x8f19)" ( (binary_expression "lVar4 + 0x8f19" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }" { (expression_statement "FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes")" identifier (argument_list "("../../gold/layout.cc",0xebd,"segment_precedes")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""segment_precedes"" " string_content ") ))) ;) })) })) })) }))) })) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < IDENT)) ;) })) (labeled_statement statement_identifier : (return_statement return (cast_expression ( (type_descriptor TYPE) ) IDENT) ;)) })) (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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (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 = (binary_expression IDENT < IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (goto_statement goto 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 TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT >> LIT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return LIT ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (return_statement return IDENT ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return (binary_expression IDENT & LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT >> LIT) ^ LIT) )) & LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (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 (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) })) })) }))) })) })) })) (return_statement return LIT ;) })))
(function_definition "uint FUN_001a5c70(long param_1,long param_2,long param_3)\n\n{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  byte bVar13;\n  uint uVar14;\n  bool bVar15;\n  \n  if (param_2 == param_3) {\n    return 0;\n  }\n  uVar10 = *(uint *)(param_2 + 0x2f0);\n  uVar2 = *(uint *)(param_3 + 0x2f0);\n  if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }\n  if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return 0;\n}" (type_identifier "uint") (function_declarator "FUN_001a5c70(long param_1,long param_2,long param_3)" (identifier "FUN_001a5c70") (parameter_list "(long param_1,long param_2,long param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  uint uVar3;\n  long lVar4;\n  byte bVar5;\n  char cVar6;\n  char cVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  byte bVar13;\n  uint uVar14;\n  bool bVar15;\n  \n  if (param_2 == param_3) {\n    return 0;\n  }\n  uVar10 = *(uint *)(param_2 + 0x2f0);\n  uVar2 = *(uint *)(param_3 + 0x2f0);\n  if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }\n  if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "long lVar4;" (sized_type_specifier "long" (long "long")) (identifier "lVar4") (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "char cVar6;" (primitive_type "char") (identifier "cVar6") (; ";")) (declaration "char cVar7;" (primitive_type "char") (identifier "cVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "byte bVar13;" (type_identifier "byte") (identifier "bVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (if_statement "if (param_2 == param_3) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_2 == param_3)" (( "(") (binary_expression "param_2 == param_3" (identifier "param_2") (== "==") (identifier "param_3")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar10 = *(uint *)(param_2 + 0x2f0);" (assignment_expression "uVar10 = *(uint *)(param_2 + 0x2f0)" (identifier "uVar10") (= "=") (pointer_expression "*(uint *)(param_2 + 0x2f0)" (* "*") (cast_expression "(uint *)(param_2 + 0x2f0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2f0)" (( "(") (binary_expression "param_2 + 0x2f0" (identifier "param_2") (+ "+") (number_literal "0x2f0")) () ")"))))) (; ";")) (expression_statement "uVar2 = *(uint *)(param_3 + 0x2f0);" (assignment_expression "uVar2 = *(uint *)(param_3 + 0x2f0)" (identifier "uVar2") (= "=") (pointer_expression "*(uint *)(param_3 + 0x2f0)" (* "*") (cast_expression "(uint *)(param_3 + 0x2f0)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2f0)" (( "(") (binary_expression "param_3 + 0x2f0" (identifier "param_3") (+ "+") (number_literal "0x2f0")) () ")"))))) (; ";")) (if_statement "if (uVar10 == 6) {\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }" (if "if") (parenthesized_expression "(uVar10 == 6)" (( "(") (binary_expression "uVar10 == 6" (identifier "uVar10") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n    if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }\n    return 1;\n  }" ({ "{") (if_statement "if (uVar2 == 6) {\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }" (if "if") (parenthesized_expression "(uVar2 == 6)" (( "(") (binary_expression "uVar2 == 6" (identifier "uVar2") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n                    \n      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");\n    }" ({ "{") (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes")" (identifier "FUN_0017c650") (argument_list "("../../gold/layout.cc",0xe44,"segment_precedes")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0xe44") (, ",") (string_literal ""segment_precedes"" (" """) (string_content "segment_precedes") (" """)) () ")"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (uVar2 != 6) {\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(uVar2 != 6)" (( "(") (binary_expression "uVar2 != 6" (identifier "uVar2") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n    if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }\n    if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if (uVar10 == 3) {\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }" (if "if") (parenthesized_expression "(uVar10 == 3)" (( "(") (binary_expression "uVar10 == 3" (identifier "uVar10") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }\n      return 1;\n    }" ({ "{") (if_statement "if (uVar2 == 3) {\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }" (if "if") (parenthesized_expression "(uVar2 == 3)" (( "(") (binary_expression "uVar2 == 3" (identifier "uVar2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n                    \n        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");\n      }" ({ "{") (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes")" (identifier "FUN_0017c650") (argument_list "("../../gold/layout.cc",0xe4e,"segment_precedes")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0xe4e") (, ",") (string_literal ""segment_precedes"" (" """) (string_content "segment_precedes") (" """)) () ")"))) (; ";")) (} "}"))) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (uVar2 != 3) {\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(uVar2 != 3)" (( "(") (binary_expression "uVar2 != 3" (identifier "uVar2") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n      if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }\n      if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }\n    }" ({ "{") (if_statement "if ((uVar10 == 1) && (uVar2 != 1)) {\n        return 1;\n      }" (if "if") (parenthesized_expression "((uVar10 == 1) && (uVar2 != 1))" (( "(") (binary_expression "(uVar10 == 1) && (uVar2 != 1)" (parenthesized_expression "(uVar10 == 1)" (( "(") (binary_expression "uVar10 == 1" (identifier "uVar10") (== "==") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if ((uVar2 != 1) || (uVar10 == 1)) {\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }" (if "if") (parenthesized_expression "((uVar2 != 1) || (uVar10 == 1))" (( "(") (binary_expression "(uVar2 != 1) || (uVar10 == 1)" (parenthesized_expression "(uVar2 != 1)" (( "(") (binary_expression "uVar2 != 1" (identifier "uVar2") (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar10 == 1)" (( "(") (binary_expression "uVar10 == 1" (identifier "uVar10") (== "==") (number_literal "1")) () ")"))) () ")")) (compound_statement "{\n        if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }\n      }" ({ "{") (if_statement "if ((uVar10 == 7) && (uVar2 != 7)) {\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }\n        else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "((uVar10 == 7) && (uVar2 != 7))" (( "(") (binary_expression "(uVar10 == 7) && (uVar2 != 7)" (parenthesized_expression "(uVar10 == 7)" (( "(") (binary_expression "uVar10 == 7" (identifier "uVar10") (== "==") (number_literal "7")) () ")")) (&& "&&") (parenthesized_expression "(uVar2 != 7)" (( "(") (binary_expression "uVar2 != 7" (identifier "uVar2") (!= "!=") (number_literal "7")) () ")"))) () ")")) (compound_statement "{\n          if (uVar2 == 0x6474e552) {\n            return 1;\n          }\n        }" ({ "{") (if_statement "if (uVar2 == 0x6474e552) {\n            return 1;\n          }" (if "if") (parenthesized_expression "(uVar2 == 0x6474e552)" (( "(") (binary_expression "uVar2 == 0x6474e552" (identifier "uVar2") (== "==") (number_literal "0x6474e552")) () ")")) (compound_statement "{\n            return 1;\n          }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" (else "else") (compound_statement "{\n          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }\n          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }\n        }" ({ "{") (if_statement "if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {\n            return 1;\n          }" (if "if") (parenthesized_expression "((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7))" (( "(") (binary_expression "(uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)" (parenthesized_expression "(uVar10 != 7 && uVar10 != 0x6474e552)" (( "(") (binary_expression "uVar10 != 7 && uVar10 != 0x6474e552" (binary_expression "uVar10 != 7" (identifier "uVar10") (!= "!=") (number_literal "7")) (&& "&&") (binary_expression "uVar10 != 0x6474e552" (identifier "uVar10") (!= "!=") (number_literal "0x6474e552"))) () ")")) (&& "&&") (parenthesized_expression "(uVar2 == 7)" (( "(") (binary_expression "uVar2 == 7" (identifier "uVar2") (== "==") (number_literal "7")) () ")"))) () ")")) (compound_statement "{\n            return 1;\n          }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }" (if "if") (parenthesized_expression "((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552))" (( "(") (binary_expression "(uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)" (parenthesized_expression "(uVar10 != 0x6474e552)" (( "(") (binary_expression "uVar10 != 0x6474e552" (identifier "uVar10") (!= "!=") (number_literal "0x6474e552")) () ")")) (|| "||") (parenthesized_expression "(uVar2 == 0x6474e552)" (( "(") (binary_expression "uVar2 == 0x6474e552" (identifier "uVar2") (== "==") (number_literal "0x6474e552")) () ")"))) () ")")) (compound_statement "{\n            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }\n            uVar3 = *(uint *)(param_2 + 0x2f4);\n            uVar14 = *(uint *)(param_3 + 0x2f4);\n            if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }\n            bVar13 = *(byte *)(param_3 + 0x2f8);\n            bVar1 = *(byte *)(param_2 + 0x2f8);\n            bVar5 = bVar13 >> 1 & 1;\n            if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }\n            bVar13 = bVar13 >> 2 & 1;\n            if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }\n            uVar14 = uVar14 ^ uVar3;\n            if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }\n            if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }\n            if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }\n            if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }\n            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }\n          }" ({ "{") (if_statement "if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {\n              return 1;\n            }" (if "if") (parenthesized_expression "((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552))" (( "(") (binary_expression "(uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)" (parenthesized_expression "(uVar2 == 0x6474e552)" (( "(") (binary_expression "uVar2 == 0x6474e552" (identifier "uVar2") (== "==") (number_literal "0x6474e552")) () ")")) (&& "&&") (parenthesized_expression "(uVar10 != 0x6474e552)" (( "(") (binary_expression "uVar10 != 0x6474e552" (identifier "uVar10") (!= "!=") (number_literal "0x6474e552")) () ")"))) () ")")) (compound_statement "{\n              return 1;\n            }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "uVar3 = *(uint *)(param_2 + 0x2f4);" (assignment_expression "uVar3 = *(uint *)(param_2 + 0x2f4)" (identifier "uVar3") (= "=") (pointer_expression "*(uint *)(param_2 + 0x2f4)" (* "*") (cast_expression "(uint *)(param_2 + 0x2f4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2f4)" (( "(") (binary_expression "param_2 + 0x2f4" (identifier "param_2") (+ "+") (number_literal "0x2f4")) () ")"))))) (; ";")) (expression_statement "uVar14 = *(uint *)(param_3 + 0x2f4);" (assignment_expression "uVar14 = *(uint *)(param_3 + 0x2f4)" (identifier "uVar14") (= "=") (pointer_expression "*(uint *)(param_3 + 0x2f4)" (* "*") (cast_expression "(uint *)(param_3 + 0x2f4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2f4)" (( "(") (binary_expression "param_3 + 0x2f4" (identifier "param_3") (+ "+") (number_literal "0x2f4")) () ")"))))) (; ";")) (if_statement "if (uVar10 != 1) {\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }" (if "if") (parenthesized_expression "(uVar10 != 1)" (( "(") (binary_expression "uVar10 != 1" (identifier "uVar10") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n              bVar15 = uVar10 < uVar2;\n              if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }\nLAB_001a5dab:\n              return (uint)bVar15;\n            }" ({ "{") (expression_statement "bVar15 = uVar10 < uVar2;" (assignment_expression "bVar15 = uVar10 < uVar2" (identifier "bVar15") (= "=") (binary_expression "uVar10 < uVar2" (identifier "uVar10") (< "<") (identifier "uVar2"))) (; ";")) (if_statement "if (uVar10 == uVar2) {\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }" (if "if") (parenthesized_expression "(uVar10 == uVar2)" (( "(") (binary_expression "uVar10 == uVar2" (identifier "uVar10") (== "==") (identifier "uVar2")) () ")")) (compound_statement "{\n                if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }\n                bVar15 = uVar3 < uVar14;\n              }" ({ "{") (if_statement "if ((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }" (if "if") (parenthesized_expression "((uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))))" (( "(") (binary_expression "(uVar3 == uVar14) &&\n                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))" (parenthesized_expression "(uVar3 == uVar14)" (( "(") (binary_expression "uVar3 == uVar14" (identifier "uVar3") (== "==") (identifier "uVar14")) () ")")) (&& "&&") (parenthesized_expression "((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))" (( "(") (parenthesized_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))" (( "(") (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||\n                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" (* "*") (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x148")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (|| "||") (parenthesized_expression "(*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" (( "(") (binary_expression "*(long *)(*(long *)(param_1 + 8) + 0x168) == 0" (pointer_expression "*(long *)(*(long *)(param_1 + 8) + 0x168)" (* "*") (cast_expression "(long *)(*(long *)(param_1 + 8) + 0x168)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x168)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x168" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x168")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n                    \n                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");\n                }" ({ "{") (expression_statement "FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes")" (identifier "FUN_0017c650") (argument_list "("../../gold/layout.cc",0xe7b,"segment_precedes")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0xe7b") (, ",") (string_literal ""segment_precedes"" (" """) (string_content "segment_precedes") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "bVar15 = uVar3 < uVar14;" (assignment_expression "bVar15 = uVar3 < uVar14" (identifier "bVar15") (= "=") (binary_expression "uVar3 < uVar14" (identifier "uVar3") (< "<") (identifier "uVar14"))) (; ";")) (} "}"))) (labeled_statement "LAB_001a5dab:\n              return (uint)bVar15;" (statement_identifier "LAB_001a5dab") (: ":") (return_statement "return (uint)bVar15;" (return "return") (cast_expression "(uint)bVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar15")) (; ";"))) (} "}"))) (expression_statement "bVar13 = *(byte *)(param_3 + 0x2f8);" (assignment_expression "bVar13 = *(byte *)(param_3 + 0x2f8)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(param_3 + 0x2f8)" (* "*") (cast_expression "(byte *)(param_3 + 0x2f8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2f8)" (( "(") (binary_expression "param_3 + 0x2f8" (identifier "param_3") (+ "+") (number_literal "0x2f8")) () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)(param_2 + 0x2f8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 0x2f8)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_2 + 0x2f8)" (* "*") (cast_expression "(byte *)(param_2 + 0x2f8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2f8)" (( "(") (binary_expression "param_2 + 0x2f8" (identifier "param_2") (+ "+") (number_literal "0x2f8")) () ")"))))) (; ";")) (expression_statement "bVar5 = bVar13 >> 1 & 1;" (assignment_expression "bVar5 = bVar13 >> 1 & 1" (identifier "bVar5") (= "=") (binary_expression "bVar13 >> 1 & 1" (binary_expression "bVar13 >> 1" (identifier "bVar13") (>> ">>") (number_literal "1")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) {\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }\n            else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" (if "if") (parenthesized_expression "((bVar1 & 2) == 0)" (( "(") (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (bVar5 != 0) {\n                return 0;\n              }\n            }" ({ "{") (if_statement "if (bVar5 != 0) {\n                return 0;\n              }" (if "if") (parenthesized_expression "(bVar5 != 0)" (( "(") (binary_expression "bVar5 != 0" (identifier "bVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" (else "else") (compound_statement "{\n              if (bVar5 == 0) {\n                return 1;\n              }\n              iVar8 = FUN_001f8220(param_2);\n              iVar9 = FUN_001f8220(param_3);\n              if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }\n              if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }\n              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }\n              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }\n              bVar15 = uVar12 < uVar11;\n              if (uVar12 != uVar11) goto LAB_001a5dab;\n              bVar13 = *(byte *)(param_3 + 0x2f8);\n              bVar1 = *(byte *)(param_2 + 0x2f8);\n            }" ({ "{") (if_statement "if (bVar5 == 0) {\n                return 1;\n              }" (if "if") (parenthesized_expression "(bVar5 == 0)" (( "(") (binary_expression "bVar5 == 0" (identifier "bVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                return 1;\n              }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "iVar8 = FUN_001f8220(param_2);" (assignment_expression "iVar8 = FUN_001f8220(param_2)" (identifier "iVar8") (= "=") (call_expression "FUN_001f8220(param_2)" (identifier "FUN_001f8220") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "iVar9 = FUN_001f8220(param_3);" (assignment_expression "iVar9 = FUN_001f8220(param_3)" (identifier "iVar9") (= "=") (call_expression "FUN_001f8220(param_3)" (identifier "FUN_001f8220") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if ((iVar8 == 0) && (iVar9 != 0)) {\n                return 1;\n              }" (if "if") (parenthesized_expression "((iVar8 == 0) && (iVar9 != 0))" (( "(") (binary_expression "(iVar8 == 0) && (iVar9 != 0)" (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                return 1;\n              }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if ((iVar8 != 0) && (iVar9 == 0)) {\n                return 0;\n              }" (if "if") (parenthesized_expression "((iVar8 != 0) && (iVar9 == 0))" (( "(") (binary_expression "(iVar8 != 0) && (iVar9 == 0)" (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                return 0;\n              }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {\n                uVar12 = FUN_001b19c0(param_2);\n              }\n              else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 0x2f8) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_2 + 0x2f8) & 2) == 0" (parenthesized_expression "(*(byte *)(param_2 + 0x2f8) & 2)" (( "(") (binary_expression "*(byte *)(param_2 + 0x2f8) & 2" (pointer_expression "*(byte *)(param_2 + 0x2f8)" (* "*") (cast_expression "(byte *)(param_2 + 0x2f8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2f8)" (( "(") (binary_expression "param_2 + 0x2f8" (identifier "param_2") (+ "+") (number_literal "0x2f8")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar12 = FUN_001b19c0(param_2);\n              }" ({ "{") (expression_statement "uVar12 = FUN_001b19c0(param_2);" (assignment_expression "uVar12 = FUN_001b19c0(param_2)" (identifier "uVar12") (= "=") (call_expression "FUN_001b19c0(param_2)" (identifier "FUN_001b19c0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" (else "else") (compound_statement "{\n                uVar12 = *(ulong *)(param_2 + 0x2c0);\n              }" ({ "{") (expression_statement "uVar12 = *(ulong *)(param_2 + 0x2c0);" (assignment_expression "uVar12 = *(ulong *)(param_2 + 0x2c0)" (identifier "uVar12") (= "=") (pointer_expression "*(ulong *)(param_2 + 0x2c0)" (* "*") (cast_expression "(ulong *)(param_2 + 0x2c0)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2c0)" (( "(") (binary_expression "param_2 + 0x2c0" (identifier "param_2") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (} "}")))) (if_statement "if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {\n                uVar11 = FUN_001b19c0(param_3);\n              }\n              else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" (if "if") (parenthesized_expression "((*(byte *)(param_3 + 0x2f8) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_3 + 0x2f8) & 2) == 0" (parenthesized_expression "(*(byte *)(param_3 + 0x2f8) & 2)" (( "(") (binary_expression "*(byte *)(param_3 + 0x2f8) & 2" (pointer_expression "*(byte *)(param_3 + 0x2f8)" (* "*") (cast_expression "(byte *)(param_3 + 0x2f8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2f8)" (( "(") (binary_expression "param_3 + 0x2f8" (identifier "param_3") (+ "+") (number_literal "0x2f8")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                uVar11 = FUN_001b19c0(param_3);\n              }" ({ "{") (expression_statement "uVar11 = FUN_001b19c0(param_3);" (assignment_expression "uVar11 = FUN_001b19c0(param_3)" (identifier "uVar11") (= "=") (call_expression "FUN_001b19c0(param_3)" (identifier "FUN_001b19c0") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" (else "else") (compound_statement "{\n                uVar11 = *(ulong *)(param_3 + 0x2c0);\n              }" ({ "{") (expression_statement "uVar11 = *(ulong *)(param_3 + 0x2c0);" (assignment_expression "uVar11 = *(ulong *)(param_3 + 0x2c0)" (identifier "uVar11") (= "=") (pointer_expression "*(ulong *)(param_3 + 0x2c0)" (* "*") (cast_expression "(ulong *)(param_3 + 0x2c0)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2c0)" (( "(") (binary_expression "param_3 + 0x2c0" (identifier "param_3") (+ "+") (number_literal "0x2c0")) () ")"))))) (; ";")) (} "}")))) (expression_statement "bVar15 = uVar12 < uVar11;" (assignment_expression "bVar15 = uVar12 < uVar11" (identifier "bVar15") (= "=") (binary_expression "uVar12 < uVar11" (identifier "uVar12") (< "<") (identifier "uVar11"))) (; ";")) (if_statement "if (uVar12 != uVar11) goto LAB_001a5dab;" (if "if") (parenthesized_expression "(uVar12 != uVar11)" (( "(") (binary_expression "uVar12 != uVar11" (identifier "uVar12") (!= "!=") (identifier "uVar11")) () ")")) (goto_statement "goto LAB_001a5dab;" (goto "goto") (statement_identifier "LAB_001a5dab") (; ";"))) (expression_statement "bVar13 = *(byte *)(param_3 + 0x2f8);" (assignment_expression "bVar13 = *(byte *)(param_3 + 0x2f8)" (identifier "bVar13") (= "=") (pointer_expression "*(byte *)(param_3 + 0x2f8)" (* "*") (cast_expression "(byte *)(param_3 + 0x2f8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_3 + 0x2f8)" (( "(") (binary_expression "param_3 + 0x2f8" (identifier "param_3") (+ "+") (number_literal "0x2f8")) () ")"))))) (; ";")) (expression_statement "bVar1 = *(byte *)(param_2 + 0x2f8);" (assignment_expression "bVar1 = *(byte *)(param_2 + 0x2f8)" (identifier "bVar1") (= "=") (pointer_expression "*(byte *)(param_2 + 0x2f8)" (* "*") (cast_expression "(byte *)(param_2 + 0x2f8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x2f8)" (( "(") (binary_expression "param_2 + 0x2f8" (identifier "param_2") (+ "+") (number_literal "0x2f8")) () ")"))))) (; ";")) (} "}")))) (expression_statement "bVar13 = bVar13 >> 2 & 1;" (assignment_expression "bVar13 = bVar13 >> 2 & 1" (identifier "bVar13") (= "=") (binary_expression "bVar13 >> 2 & 1" (binary_expression "bVar13 >> 2" (identifier "bVar13") (>> ">>") (number_literal "2")) (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((bVar1 & 4) == 0) {\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }\n            else if (bVar13 == 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "((bVar1 & 4) == 0)" (( "(") (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (bVar13 != 0) {\n                return 1;\n              }\n            }" ({ "{") (if_statement "if (bVar13 != 0) {\n                return 1;\n              }" (if "if") (parenthesized_expression "(bVar13 != 0)" (( "(") (binary_expression "bVar13 != 0" (identifier "bVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                return 1;\n              }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (} "}")) (else_clause "else if (bVar13 == 0) {\n              return 0;\n            }" (else "else") (if_statement "if (bVar13 == 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(bVar13 == 0)" (( "(") (binary_expression "bVar13 == 0" (identifier "bVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))))) (expression_statement "uVar14 = uVar14 ^ uVar3;" (assignment_expression "uVar14 = uVar14 ^ uVar3" (identifier "uVar14") (= "=") (binary_expression "uVar14 ^ uVar3" (identifier "uVar14") (^ "^") (identifier "uVar3"))) (; ";")) (if_statement "if ((uVar14 & 2) != 0) {\n              return (uint)((uVar3 & 2) == 0);\n            }" (if "if") (parenthesized_expression "((uVar14 & 2) != 0)" (( "(") (binary_expression "(uVar14 & 2) != 0" (parenthesized_expression "(uVar14 & 2)" (( "(") (binary_expression "uVar14 & 2" (identifier "uVar14") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              return (uint)((uVar3 & 2) == 0);\n            }" ({ "{") (return_statement "return (uint)((uVar3 & 2) == 0);" (return "return") (call_expression "(uint)((uVar3 & 2) == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((uVar3 & 2) == 0)" (( "(") (binary_expression "(uVar3 & 2) == 0" (parenthesized_expression "(uVar3 & 2)" (( "(") (binary_expression "uVar3 & 2" (identifier "uVar3") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar3 & 2) != 0) {\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }" (if "if") (parenthesized_expression "((uVar3 & 2) != 0)" (( "(") (binary_expression "(uVar3 & 2) != 0" (parenthesized_expression "(uVar3 & 2)" (( "(") (binary_expression "uVar3 & 2" (identifier "uVar3") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              cVar6 = FUN_001f72a0(param_2);\n              cVar7 = FUN_001f72a0(param_3);\n              if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }\n            }" ({ "{") (expression_statement "cVar6 = FUN_001f72a0(param_2);" (assignment_expression "cVar6 = FUN_001f72a0(param_2)" (identifier "cVar6") (= "=") (call_expression "FUN_001f72a0(param_2)" (identifier "FUN_001f72a0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "cVar7 = FUN_001f72a0(param_3);" (assignment_expression "cVar7 = FUN_001f72a0(param_3)" (identifier "cVar7") (= "=") (call_expression "FUN_001f72a0(param_3)" (identifier "FUN_001f72a0") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (cVar6 != cVar7) {\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }" (if "if") (parenthesized_expression "(cVar6 != cVar7)" (( "(") (binary_expression "cVar6 != cVar7" (identifier "cVar6") (!= "!=") (identifier "cVar7")) () ")")) (compound_statement "{\n                uVar10 = FUN_001f72a0(param_2);\n                return uVar10;\n              }" ({ "{") (expression_statement "uVar10 = FUN_001f72a0(param_2);" (assignment_expression "uVar10 = FUN_001f72a0(param_2)" (identifier "uVar10") (= "=") (call_expression "FUN_001f72a0(param_2)" (identifier "FUN_001f72a0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (return_statement "return uVar10;" (return "return") (identifier "uVar10") (; ";")) (} "}"))) (} "}"))) (if_statement "if ((uVar14 & 1) != 0) {\n              return uVar3 & 1;\n            }" (if "if") (parenthesized_expression "((uVar14 & 1) != 0)" (( "(") (binary_expression "(uVar14 & 1) != 0" (parenthesized_expression "(uVar14 & 1)" (( "(") (binary_expression "uVar14 & 1" (identifier "uVar14") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              return uVar3 & 1;\n            }" ({ "{") (return_statement "return uVar3 & 1;" (return "return") (binary_expression "uVar3 & 1" (identifier "uVar3") (& "&") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((uVar14 & 4) != 0) {\n              return (uVar3 >> 2 ^ 1) & 1;\n            }" (if "if") (parenthesized_expression "((uVar14 & 4) != 0)" (( "(") (binary_expression "(uVar14 & 4) != 0" (parenthesized_expression "(uVar14 & 4)" (( "(") (binary_expression "uVar14 & 4" (identifier "uVar14") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              return (uVar3 >> 2 ^ 1) & 1;\n            }" ({ "{") (return_statement "return (uVar3 >> 2 ^ 1) & 1;" (return "return") (binary_expression "(uVar3 >> 2 ^ 1) & 1" (parenthesized_expression "(uVar3 >> 2 ^ 1)" (( "(") (binary_expression "uVar3 >> 2 ^ 1" (binary_expression "uVar3 >> 2" (identifier "uVar3") (>> ">>") (number_literal "2")) (^ "^") (number_literal "1")) () ")")) (& "&") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }" (if "if") (parenthesized_expression "((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0))" (( "(") (binary_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||\n               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" (parenthesized_expression "(*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0')" (( "(") (binary_expression "*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0'" (pointer_expression "*(char *)(*(long *)(param_1 + 8) + 0x148)" (* "*") (cast_expression "(char *)(*(long *)(param_1 + 8) + 0x148)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x148)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x148" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x148")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)" (( "(") (binary_expression "*(long *)(*(long *)(param_1 + 8) + 0x168) == 0" (pointer_expression "*(long *)(*(long *)(param_1 + 8) + 0x168)" (* "*") (cast_expression "(long *)(*(long *)(param_1 + 8) + 0x168)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(long *)(param_1 + 8) + 0x168)" (( "(") (binary_expression "*(long *)(param_1 + 8) + 0x168" (pointer_expression "*(long *)(param_1 + 8)" (* "*") (cast_expression "(long *)(param_1 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x168")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);\n              if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }\n              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }\n            }" ({ "{") (expression_statement "lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);" (assignment_expression "lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10)" (identifier "lVar4") (= "=") (pointer_expression "*(long *)(PTR_DAT_0043e6b0 + 0x10)" (* "*") (cast_expression "(long *)(PTR_DAT_0043e6b0 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0043e6b0 + 0x10)" (( "(") (binary_expression "PTR_DAT_0043e6b0 + 0x10" (identifier "PTR_DAT_0043e6b0") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (lVar4 == 0) {\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }" (if "if") (parenthesized_expression "(lVar4 == 0)" (( "(") (binary_expression "lVar4 == 0" (identifier "lVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_0017c650("../../gold/parameters.h",0x5c,"options");\n              }" ({ "{") (expression_statement "FUN_0017c650("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_0017c650("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_0017c650") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')) {\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }" (if "if") (parenthesized_expression "(((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0'))" (( "(") (binary_expression "((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&\n                 (*(char *)(lVar4 + 0x8f19) == '\0')" (parenthesized_expression "((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0'))" (( "(") (binary_expression "(*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')" (parenthesized_expression "(*(long *)(lVar4 + 0x9298) == 0)" (( "(") (binary_expression "*(long *)(lVar4 + 0x9298) == 0" (pointer_expression "*(long *)(lVar4 + 0x9298)" (* "*") (cast_expression "(long *)(lVar4 + 0x9298)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x9298)" (( "(") (binary_expression "lVar4 + 0x9298" (identifier "lVar4") (+ "+") (number_literal "0x9298")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(param_1 + 0x372) == '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x372) == '\0'" (pointer_expression "*(char *)(param_1 + 0x372)" (* "*") (cast_expression "(char *)(param_1 + 0x372)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x372)" (( "(") (binary_expression "param_1 + 0x372" (identifier "param_1") (+ "+") (number_literal "0x372")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(lVar4 + 0x8f19) == '\0')" (( "(") (binary_expression "*(char *)(lVar4 + 0x8f19) == '\0'" (pointer_expression "*(char *)(lVar4 + 0x8f19)" (* "*") (cast_expression "(char *)(lVar4 + 0x8f19)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar4 + 0x8f19)" (( "(") (binary_expression "lVar4 + 0x8f19" (identifier "lVar4") (+ "+") (number_literal "0x8f19")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    \n                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");\n              }" ({ "{") (expression_statement "FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");" (call_expression "FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes")" (identifier "FUN_0017c650") (argument_list "("../../gold/layout.cc",0xebd,"segment_precedes")" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0xebd") (, ",") (string_literal ""segment_precedes"" (" """) (string_content "segment_precedes") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}")))) (} "}"))) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: bool segment_precedes(Layout * this, Output_segment * seg1,
   Output_segment * seg2) */

bool __thiscall
gold::type_1::function_1(type_1 *this,type_2 *var_1,type_2 *var_2)

{
  type_3 var_9;
  type_4 var_6;
  type_5 *var_18;
  type_3 var_10;
  bool var_16;
  bool var_17;
  type_4 var_3;
  type_4 var_4;
  type_6 var_14;
  uint64_t var_13;
  type_3 var_8;
  type_4 var_7;
  
  if (var_1 == var_2) {
    return false;
  }
  var_3 = var_1->type_;
  var_4 = var_2->type_;
  if (var_3 == 6) {
    if (var_4 == 6) {
                    /* WARNING: Subroutine does not return */
      var_5("../../gold/layout.cc",0xe44,"segment_precedes");
    }
    return true;
  }
  if (var_4 != 6) {
    if (var_3 == 3) {
      if (var_4 == 3) {
                    /* WARNING: Subroutine does not return */
        var_5("../../gold/layout.cc",0xe4e,"segment_precedes");
      }
      return true;
    }
    if (var_4 != 3) {
      if ((var_3 == 1) && (var_4 != 1)) {
        return true;
      }
      if ((var_4 != 1) || (var_3 == 1)) {
        if ((var_3 == 7) && (var_4 != 7)) {
          if (var_4 == 0x6474e552) {
            return true;
          }
        }
        else {
          if ((var_3 != 7 && var_3 != 0x6474e552) && (var_4 == 7)) {
            return true;
          }
          if ((var_3 != 0x6474e552) || (var_4 == 0x6474e552)) {
            if ((var_4 == 0x6474e552) && (var_3 != 0x6474e552)) {
              return true;
            }
            var_6 = var_1->flags_;
            var_7 = var_2->flags_;
            if (var_3 != 1) {
              if (var_3 != var_4) {
                return var_3 < var_4;
              }
              if ((var_6 == var_7) &&
                 (((this->script_options_->script_sections_).saw_sections_clause_ == false ||
                  ((this->script_options_->script_sections_).phdrs_elements_ ==
                   (type_7 *)0x0)))) {
                    /* WARNING: Subroutine does not return */
                var_5("../../gold/layout.cc",0xe7b,"segment_precedes");
              }
              return var_6 < var_7;
            }
            var_8 = var_2->field_0x2f8;
            var_9 = var_1->field_0x2f8;
            var_10 = var_8 >> 1 & 1;
            if ((var_9 & 2) == 0) {
              if (var_10 != 0) {
                return false;
              }
            }
            else {
              if (var_10 == 0) {
                return true;
              }
              var_3 = type_2::var_11(var_1);
              var_4 = type_2::var_11(var_2);
              if ((var_3 == 0) && (var_4 != 0)) {
                return true;
              }
              if ((var_3 != 0) && (var_4 == 0)) {
                return false;
              }
              if ((var_1->field_0x2f8 & 2) == 0) {
                var_13 = type_2::var_12(var_1);
              }
              else {
                var_13 = var_1->paddr_;
              }
              if ((var_2->field_0x2f8 & 2) == 0) {
                var_14 = type_2::var_12(var_2);
              }
              else {
                var_14 = var_2->paddr_;
              }
              if (var_13 != var_14) {
                return var_13 < var_14;
              }
              var_8 = var_2->field_0x2f8;
              var_9 = var_1->field_0x2f8;
            }
            var_8 = var_8 >> 2 & 1;
            if ((var_9 & 4) == 0) {
              if (var_8 != 0) {
                return true;
              }
            }
            else if (var_8 == 0) {
              return false;
            }
            var_7 = var_7 ^ var_6;
            if ((var_7 & 2) != 0) {
              return (var_6 & 2) == 0;
            }
            if ((var_6 & 2) != 0) {
              var_16 = type_2::var_15(var_1);
              var_17 = type_2::var_15(var_2);
              if (var_16 != var_17) {
                var_16 = type_2::var_15(var_1);
                return var_16;
              }
            }
            if ((var_7 & 1) != 0) {
              return (bool)((type_3)var_6 & 1);
            }
            if ((var_7 & 4) != 0) {
              return (bool)(((type_3)(var_6 >> 2) ^ 1) & 1);
            }
            if (((this->script_options_->script_sections_).saw_sections_clause_ == false) ||
               ((this->script_options_->script_sections_).phdrs_elements_ == (type_7 *)0x0))
            {
              var_18 = parameters->options_;
              if (var_18 == (type_5 *)0x0) {
                    /* WARNING: Subroutine does not return */
                var_5("../../gold/parameters.h",0x5c,"options");
              }
              if ((((var_18->section_starts_)._M_t._M_impl.super__Rb_tree_header._M_node_count == 0)
                  && (this->unique_segment_for_sections_specified_ == false)) &&
                 ((var_18->text_unlikely_segment_).value == false)) {
                    /* WARNING: Subroutine does not return */
                var_5("../../gold/layout.cc",0xebd,"segment_precedes");
              }
            }
          }
        }
      }
    }
  }
  return false;
}


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

uint MASKED(long param_1,long param_2,long param_3)

{
  byte bVar1;
  uint uVar2;
  uint uVar3;
  long lVar4;
  byte bVar5;
  char cVar6;
  char cVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  ulong uVar11;
  ulong uVar12;
  byte bVar13;
  uint uVar14;
  bool bVar15;
  
  if (param_2 == param_3) {
    return 0;
  }
  uVar10 = *(uint *)(param_2 + 0x2f0);
  uVar2 = *(uint *)(param_3 + 0x2f0);
  if (uVar10 == 6) {
    if (uVar2 == 6) {
                    /* WARNING: Subroutine does not return */
      FUN_0017c650("../../gold/layout.cc",0xe44,"segment_precedes");
    }
    return 1;
  }
  if (uVar2 != 6) {
    if (uVar10 == 3) {
      if (uVar2 == 3) {
                    /* WARNING: Subroutine does not return */
        FUN_0017c650("../../gold/layout.cc",0xe4e,"segment_precedes");
      }
      return 1;
    }
    if (uVar2 != 3) {
      if ((uVar10 == 1) && (uVar2 != 1)) {
        return 1;
      }
      if ((uVar2 != 1) || (uVar10 == 1)) {
        if ((uVar10 == 7) && (uVar2 != 7)) {
          if (uVar2 == 0x6474e552) {
            return 1;
          }
        }
        else {
          if ((uVar10 != 7 && uVar10 != 0x6474e552) && (uVar2 == 7)) {
            return 1;
          }
          if ((uVar10 != 0x6474e552) || (uVar2 == 0x6474e552)) {
            if ((uVar2 == 0x6474e552) && (uVar10 != 0x6474e552)) {
              return 1;
            }
            uVar3 = *(uint *)(param_2 + 0x2f4);
            uVar14 = *(uint *)(param_3 + 0x2f4);
            if (uVar10 != 1) {
              bVar15 = uVar10 < uVar2;
              if (uVar10 == uVar2) {
                if ((uVar3 == uVar14) &&
                   ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0' ||
                    (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)))) {
                    /* WARNING: Subroutine does not return */
                  FUN_0017c650("../../gold/layout.cc",0xe7b,"segment_precedes");
                }
                bVar15 = uVar3 < uVar14;
              }
LAB_001a5dab:
              return (uint)bVar15;
            }
            bVar13 = *(byte *)(param_3 + 0x2f8);
            bVar1 = *(byte *)(param_2 + 0x2f8);
            bVar5 = bVar13 >> 1 & 1;
            if ((bVar1 & 2) == 0) {
              if (bVar5 != 0) {
                return 0;
              }
            }
            else {
              if (bVar5 == 0) {
                return 1;
              }
              iVar8 = FUN_001f8220(param_2);
              iVar9 = FUN_001f8220(param_3);
              if ((iVar8 == 0) && (iVar9 != 0)) {
                return 1;
              }
              if ((iVar8 != 0) && (iVar9 == 0)) {
                return 0;
              }
              if ((*(byte *)(param_2 + 0x2f8) & 2) == 0) {
                uVar12 = FUN_001b19c0(param_2);
              }
              else {
                uVar12 = *(ulong *)(param_2 + 0x2c0);
              }
              if ((*(byte *)(param_3 + 0x2f8) & 2) == 0) {
                uVar11 = FUN_001b19c0(param_3);
              }
              else {
                uVar11 = *(ulong *)(param_3 + 0x2c0);
              }
              bVar15 = uVar12 < uVar11;
              if (uVar12 != uVar11) goto LAB_001a5dab;
              bVar13 = *(byte *)(param_3 + 0x2f8);
              bVar1 = *(byte *)(param_2 + 0x2f8);
            }
            bVar13 = bVar13 >> 2 & 1;
            if ((bVar1 & 4) == 0) {
              if (bVar13 != 0) {
                return 1;
              }
            }
            else if (bVar13 == 0) {
              return 0;
            }
            uVar14 = uVar14 ^ uVar3;
            if ((uVar14 & 2) != 0) {
              return (uint)((uVar3 & 2) == 0);
            }
            if ((uVar3 & 2) != 0) {
              cVar6 = FUN_001f72a0(param_2);
              cVar7 = FUN_001f72a0(param_3);
              if (cVar6 != cVar7) {
                uVar10 = FUN_001f72a0(param_2);
                return uVar10;
              }
            }
            if ((uVar14 & 1) != 0) {
              return uVar3 & 1;
            }
            if ((uVar14 & 4) != 0) {
              return (uVar3 >> 2 ^ 1) & 1;
            }
            if ((*(char *)(*(long *)(param_1 + 8) + 0x148) == '\0') ||
               (*(long *)(*(long *)(param_1 + 8) + 0x168) == 0)) {
              lVar4 = *(long *)(PTR_DAT_0043e6b0 + 0x10);
              if (lVar4 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_0017c650("../../gold/parameters.h",0x5c,"options");
              }
              if (((*(long *)(lVar4 + 0x9298) == 0) && (*(char *)(param_1 + 0x372) == '\0')) &&
                 (*(char *)(lVar4 + 0x8f19) == '\0')) {
                    /* WARNING: Subroutine does not return */
                FUN_0017c650("../../gold/layout.cc",0xebd,"segment_precedes");
              }
            }
          }
        }
      }
    }
  }
  return 0;
}

