
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void remove(Free_list * this, off_t start, off_t end) */

int __thiscall gold::Free_list::remove(Free_list *this,char *__filename)

{
  size_t *psVar1;
  _List_node_base *p_Var2;
  _List_node_base *p_Var3;
  char *pcVar4;
  Free_list *pFVar5;
  uint uVar6;
  int iVar7;
  int iVar8;
  Parameters *pPVar9;
  _List_node_base *this_00;
  int iVar10;
  int iVar11;
  Free_list *this_01;
  _List_node_base *in_stack_0000000c;
  char *in_stack_00000010;
  _List_node_base *in_stack_00000014;
  
  pPVar9 = (Parameters *)((uint)__filename ^ (uint)in_stack_00000010);
  if (in_stack_00000014 != in_stack_0000000c ||
      (Parameters *)((uint)__filename ^ (uint)in_stack_00000010) != (Parameters *)0x0) {
    if ((SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=
        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,
                 (uint)(__filename < in_stack_00000010))) ==
        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -
             (uint)(__filename < in_stack_00000010)) < 0) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");
    }
    num_removes = num_removes + 1;
    this_01 = (Free_list *)(this->last_remove_)._M_node;
    uVar6 = (uint)(__filename <
                  (char *)(this_01->list_).
                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
                          ._M_impl._M_node._M_size);
    iVar7 = (int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node;
    if ((SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=
        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0) {
      this_01 = (Free_list *)
                (this->list_).
                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
                ._M_impl._M_node.super__List_node_base._M_next;
    }
    for (; this_01 != this;
        this_01 = (Free_list *)
                  (this_01->list_).
                  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
                  ._M_impl._M_node.super__List_node_base._M_next) {
      num_remove_visits = num_remove_visits + 1;
      p_Var2 = (this_01->last_remove_)._M_node;
      p_Var3 = (_List_node_base *)
               (this_01->list_).
               super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
               ._M_impl._M_node._M_size;
      if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=
          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==
          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0) {
        iVar7 = (int)this_01->length_;
        pcVar4 = *(char **)&this_01->extend_;
        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=
            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==
            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {
          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)
          ;
          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);
          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);
          iVar8 = iVar11 - (int)in_stack_0000000c;
          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==
              (int)(iVar8 - uVar6) < 0) {
            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);
            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==
                (int)((iVar10 - iVar7) - uVar6) < 0) {
              pFVar5 = (Free_list *)
                       (this_01->list_).
                       super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
                       ._M_impl._M_node.super__List_node_base._M_next;
              psVar1 = &(this->list_).
                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
                        ._M_impl._M_node._M_size;
              *psVar1 = *psVar1 - 1;
              std::__detail::_List_node_base::_M_unhook((_List_node_base *)this_01);
              operator_delete(this_01);
              this_01 = pFVar5;
            }
            else {
              (this_01->list_).
              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;
              (this_01->last_remove_)._M_node = in_stack_00000014;
            }
          }
          else {
            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);
            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==
                (int)((iVar10 - iVar7) - uVar6) < 0) {
              *(char **)&this_01->extend_ = __filename;
              *(_List_node_base **)&this_01->length_ = in_stack_0000000c;
            }
            else {
              (this_01->list_).
              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;
              (this_01->last_remove_)._M_node = in_stack_00000014;
              this_00 = (_List_node_base *)operator_new(0x18);
              this_00[1]._M_prev = p_Var2;
              this_00[1]._M_next = p_Var3;
              this_00[2]._M_next = (_List_node_base *)__filename;
              this_00[2]._M_prev = in_stack_0000000c;
              std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)this_01);
              num_nodes = num_nodes + 1;
              psVar1 = &(this->list_).
                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>
                        ._M_impl._M_node._M_size;
              *psVar1 = *psVar1 + 1;
            }
          }
          (this->last_remove_)._M_node = (_List_node_base *)this_01;
          return (int)this;
        }
      }
    }
    pPVar9 = parameters;
    if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {
      Errors::debug(parameters->errors_,"Free_list::remove(%d,%d) not found",__filename);
      return (int)pPVar9;
    }
  }
  return (int)pPVar9;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)

{
  uint uVar1;
  uint uVar2;
  undefined4 *puVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined4 *puVar10;
  
  if (param_5 != param_3 || param_2 != param_4) {
    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);
    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==
        iVar6 < 0) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);
    }
    DAT_0038f4b8 = DAT_0038f4b8 + 1;
    puVar10 = (undefined4 *)param_1[3];
    iVar6 = param_3 - puVar10[3];
    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=
        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {
      puVar10 = (undefined4 *)*param_1;
    }
    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {
      DAT_0038f4b4 = DAT_0038f4b4 + 1;
      iVar6 = puVar10[3];
      uVar1 = puVar10[2];
      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==
          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {
        iVar7 = puVar10[5];
        uVar2 = puVar10[4];
        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==
            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {
          iVar8 = param_5 + (uint)(0xfffffffc < param_4);
          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);
          uVar4 = (uint)(uVar1 + 3 < param_2);
          iVar5 = iVar9 - param_3;
          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {
            uVar1 = (uint)(param_4 + 3 < uVar2);
            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==
                (int)((iVar8 - iVar7) - uVar1) < 0) {
              puVar3 = (undefined4 *)*puVar10;
              param_1[2] = param_1[2] + -1;
              FUN_001e9f90(puVar10);
              FUN_001e6db0(puVar10);
              puVar10 = puVar3;
            }
            else {
              puVar10[2] = param_4;
              puVar10[3] = param_5;
            }
          }
          else {
            uVar2 = (uint)(param_4 + 3 < uVar2);
            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==
                (int)((iVar8 - iVar7) - uVar2) < 0) {
              puVar10[4] = param_2;
              puVar10[5] = param_3;
            }
            else {
              puVar10[2] = param_4;
              puVar10[3] = param_5;
              iVar7 = FUN_001e5200(0x18);
              *(int *)(iVar7 + 0xc) = iVar6;
              *(uint *)(iVar7 + 8) = uVar1;
              *(uint *)(iVar7 + 0x10) = param_2;
              *(int *)(iVar7 + 0x14) = param_3;
              FUN_001e9f70(iVar7,puVar10);
              DAT_0038f4bc = DAT_0038f4bc + 1;
              param_1[2] = param_1[2] + 1;
            }
          }
          param_1[3] = puVar10;
          return;
        }
      }
    }
    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {
      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);
      return;
    }
  }
  return;
}


CALL 0x000559e6
ADD EAX,0x2f8cab
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x3c
MOV EDI,dword ptr [ESP + 0x54]
MOV EBX,dword ptr [ESP + 0x60]
MOV dword ptr [ESP + 0x24],EAX
MOV ESI,dword ptr [ESP + 0x58]
MOV ECX,dword ptr [ESP + 0x5c]
MOV EAX,EDI
MOV EDX,EBX
MOV dword ptr [ESP + 0xc],EDI
XOR EAX,ECX
XOR EDX,ESI
MOV dword ptr [ESP + 0x20],ESI
OR EDX,EAX
MOV dword ptr [ESP + 0x10],ECX
MOV dword ptr [ESP + 0x14],EBX
JZ 0x00096442
CMP EDI,ECX
MOV EAX,ESI
SBB EAX,EBX
JGE 0x000965a7
MOV EAX,dword ptr [ESP + 0x24]
ADD dword ptr [EAX + 0x4b8],0x1
MOV EAX,dword ptr [ESP + 0x50]
MOV ESI,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [ESP + 0xc]
CMP EAX,dword ptr [ESI + 0x8]
MOV EAX,dword ptr [ESP + 0x20]
SBB EAX,dword ptr [ESI + 0xc]
JL 0x00096450
CMP ESI,dword ptr [ESP + 0x50]
JZ 0x00096425
MOV EAX,dword ptr [ESP + 0x24]
MOV EBP,dword ptr [ESP + 0x20]
MOV EAX,dword ptr [EAX + 0x4b4]
ADD EAX,0x1
JMP 0x000963e2
MOV EAX,EDX
MOV ECX,dword ptr [ESI + 0xc]
MOV EDX,dword ptr [ESI + 0x8]
MOV EBX,EBP
CMP dword ptr [ESP + 0xc],EDX
SBB EBX,ECX
JL 0x00096410
MOV EDI,dword ptr [ESI + 0x14]
MOV EBX,dword ptr [ESI + 0x10]
MOV dword ptr [ESP + 0x18],EDI
MOV EDI,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x20],EBX
CMP EBX,EDI
MOV EBX,dword ptr [ESP + 0x18]
SBB EBX,dword ptr [ESP + 0x14]
JGE 0x00096460
MOV ESI,dword ptr [ESI]
LEA EDX,[EAX + 0x1]
CMP ESI,dword ptr [ESP + 0x50]
JNZ 0x000963e0
MOV ECX,dword ptr [ESP + 0x24]
MOV dword ptr [ECX + 0x4b4],EAX
MOV ECX,dword ptr [ESP + 0x24]
LEA EAX,[ECX + 0x378]
MOV EAX,dword ptr [EAX]
MOV EDX,dword ptr [EAX + 0x8]
TEST EDX,EDX
JZ 0x00096442
TEST byte ptr [EAX + 0x14],0x10
JNZ 0x000964d0
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EAX,dword ptr [ESP + 0x50]
MOV ESI,dword ptr [EAX]
JMP 0x000963c7
MOV EDI,dword ptr [ESP + 0x24]
MOV EBX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x20],EBP
MOV EBP,dword ptr [ESP + 0x14]
MOV dword ptr [EDI + 0x4b4],EAX
MOV EDI,dword ptr [ESP + 0x10]
ADD EDI,0x3
ADC EBP,0x0
MOV dword ptr [ESP + 0x28],EDI
MOV EDI,EDX
ADD EDI,0x3
MOV dword ptr [ESP + 0x2c],EBP
MOV EBP,ECX
ADC EBP,0x0
CMP EDI,dword ptr [ESP + 0xc]
MOV EAX,EBP
SBB EAX,dword ptr [ESP + 0x20]
JL 0x000964f8
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x2c]
CMP EAX,EBX
MOV EAX,EDX
SBB EAX,dword ptr [ESP + 0x18]
JGE 0x0009651a
MOV EAX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESP + 0x14]
MOV dword ptr [ESI + 0x8],EAX
MOV dword ptr [ESI + 0xc],EDX
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [EAX + 0xc],ESI
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EDX,[ECX + 0xffefbadc]
PUSH dword ptr [ESP + 0x10]
MOV EBX,ECX
PUSH dword ptr [ESP + 0x10]
PUSH EDX
PUSH dword ptr [EAX]
CALL 0x000653f0
ADD ESP,0x10
ADD ESP,0x3c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0x28]
MOV EBP,dword ptr [ESP + 0x2c]
CMP EDI,EBX
MOV EAX,EBP
SBB EAX,dword ptr [ESP + 0x18]
JL 0x00096545
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESI + 0x14],EAX
JMP 0x000964be
MOV EAX,dword ptr [ESP + 0x50]
MOV EDI,dword ptr [ESI]
SUB ESP,0xc
SUB dword ptr [EAX + 0x8],0x1
PUSH ESI
MOV EBP,dword ptr [ESP + 0x34]
MOV EBX,EBP
CALL 0x001e9f90
MOV dword ptr [ESP],ESI
MOV ESI,EDI
CALL 0x001e6db0
ADD ESP,0x10
JMP 0x000964be
MOV dword ptr [ESP + 0x18],EDX
MOV EAX,dword ptr [ESP + 0x10]
SUB ESP,0xc
MOV EDX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x28],ECX
MOV dword ptr [ESI + 0x8],EAX
MOV dword ptr [ESI + 0xc],EDX
PUSH 0x18
MOV EDI,dword ptr [ESP + 0x34]
MOV EBX,EDI
CALL 0x001e5200
MOV ECX,dword ptr [ESP + 0x2c]
MOV EDX,dword ptr [ESP + 0x28]
MOV dword ptr [EAX + 0xc],ECX
MOV ECX,dword ptr [ESP + 0x1c]
MOV dword ptr [EAX + 0x8],EDX
MOV dword ptr [EAX + 0x10],ECX
MOV ECX,dword ptr [ESP + 0x30]
MOV dword ptr [EAX + 0x14],ECX
POP ECX
POP EBP
PUSH ESI
PUSH EAX
CALL 0x001e9f70
MOV EAX,dword ptr [ESP + 0x60]
ADD dword ptr [EDI + 0x4bc],0x1
ADD ESP,0x10
ADD dword ptr [EAX + 0x8],0x1
JMP 0x000964be
PUSH EAX
MOV EBX,dword ptr [ESP + 0x28]
LEA EAX,[EBX + 0xffefcaa4]
PUSH EAX
LEA EAX,[EBX + 0xffefb4ab]
PUSH 0x6d
PUSH EAX
CALL 0x00069d00
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  \n  if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  \n  if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)" identifier (parameter_list "(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  \n  if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (if_statement "if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }" if (parenthesized_expression "(param_5 != param_3 || param_2 != param_4)" ( (binary_expression "param_5 != param_3 || param_2 != param_4" (binary_expression "param_5 != param_3" identifier != identifier) || (binary_expression "param_2 != param_4" identifier != identifier)) )) (compound_statement "{\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }" { (expression_statement "iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);" (assignment_expression "iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4)" identifier = (binary_expression "(param_3 - param_5) - (uint)(param_2 < param_4)" (parenthesized_expression "(param_3 - param_5)" ( (binary_expression "param_3 - param_5" identifier - identifier) )) - (call_expression "(uint)(param_2 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < param_4)" ( (binary_expression "param_2 < param_4" identifier < identifier) ))))) ;) (if_statement "if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }" if (parenthesized_expression "((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0)" ( (binary_expression "(SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0" (parenthesized_expression "(SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4)))" ( (binary_expression "SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))" (call_expression "SBORROW4(param_3,param_5)" identifier (argument_list "(param_3,param_5)" ( identifier , identifier ))) != (call_expression "SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))" identifier (argument_list "(param_3 - param_5,(uint)(param_2 < param_4))" ( (binary_expression "param_3 - param_5" identifier - identifier) , (call_expression "(uint)(param_2 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < param_4)" ( (binary_expression "param_2 < param_4" identifier < identifier) ))) )))) )) == (binary_expression "iVar6 < 0" identifier < number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }" { comment (expression_statement "FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);" (call_expression "FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6)" identifier (argument_list "("../../gold/layout.cc",0x6d,"remove",iVar6)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""remove"" " string_content ") , identifier ))) ;) })) (expression_statement "DAT_0038f4b8 = DAT_0038f4b8 + 1;" (assignment_expression "DAT_0038f4b8 = DAT_0038f4b8 + 1" identifier = (binary_expression "DAT_0038f4b8 + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = (undefined4 *)param_1[3];" (assignment_expression "puVar10 = (undefined4 *)param_1[3]" identifier = (cast_expression "(undefined4 *)param_1[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar6 = param_3 - puVar10[3];" (assignment_expression "iVar6 = param_3 - puVar10[3]" identifier = (binary_expression "param_3 - puVar10[3]" identifier - (subscript_expression "puVar10[3]" identifier [ number_literal ]))) ;) (if_statement "if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }" if (parenthesized_expression "((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0)" ( (binary_expression "(SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0" (parenthesized_expression "(SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2])))" ( (binary_expression "SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))" (call_expression "SBORROW4(param_3,puVar10[3])" identifier (argument_list "(param_3,puVar10[3])" ( identifier , (subscript_expression "puVar10[3]" identifier [ number_literal ]) ))) != (call_expression "SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))" identifier (argument_list "(iVar6,(uint)(param_2 < (uint)puVar10[2]))" ( identifier , (call_expression "(uint)(param_2 < (uint)puVar10[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < (uint)puVar10[2])" ( (binary_expression "param_2 < (uint)puVar10[2]" identifier < (cast_expression "(uint)puVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar10[2]" identifier [ number_literal ]))) ))) )))) )) != (binary_expression "(int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0" (cast_expression "(int)(iVar6 - (uint)(param_2 < (uint)puVar10[2]))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar6 - (uint)(param_2 < (uint)puVar10[2]))" ( (binary_expression "iVar6 - (uint)(param_2 < (uint)puVar10[2])" identifier - (call_expression "(uint)(param_2 < (uint)puVar10[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < (uint)puVar10[2])" ( (binary_expression "param_2 < (uint)puVar10[2]" identifier < (cast_expression "(uint)puVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar10[2]" identifier [ number_literal ]))) )))) ))) < number_literal)) )) (compound_statement "{\n      puVar10 = (undefined4 *)*param_1;\n    }" { (expression_statement "puVar10 = (undefined4 *)*param_1;" (assignment_expression "puVar10 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) (for_statement "for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }" for ( ; (binary_expression "puVar10 != param_1" identifier != identifier) ; (assignment_expression "puVar10 = (undefined4 *)*puVar10" identifier = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ) (compound_statement "{\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }" { (expression_statement "DAT_0038f4b4 = DAT_0038f4b4 + 1;" (assignment_expression "DAT_0038f4b4 = DAT_0038f4b4 + 1" identifier = (binary_expression "DAT_0038f4b4 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = puVar10[3];" (assignment_expression "iVar6 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = puVar10[2];" (assignment_expression "uVar1 = puVar10[2]" identifier = (subscript_expression "puVar10[2]" identifier [ number_literal ])) ;) (if_statement "if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }" if (parenthesized_expression "((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0)" ( (binary_expression "(SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0" (parenthesized_expression "(SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1)))" ( (binary_expression "SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))" (call_expression "SBORROW4(param_3,iVar6)" identifier (argument_list "(param_3,iVar6)" ( identifier , identifier ))) != (call_expression "SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))" identifier (argument_list "(param_3 - iVar6,(uint)(param_2 < uVar1))" ( (binary_expression "param_3 - iVar6" identifier - identifier) , (call_expression "(uint)(param_2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < uVar1)" ( (binary_expression "param_2 < uVar1" identifier < identifier) ))) )))) )) == (binary_expression "(int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0" (cast_expression "(int)((param_3 - iVar6) - (uint)(param_2 < uVar1))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_3 - iVar6) - (uint)(param_2 < uVar1))" ( (binary_expression "(param_3 - iVar6) - (uint)(param_2 < uVar1)" (parenthesized_expression "(param_3 - iVar6)" ( (binary_expression "param_3 - iVar6" identifier - identifier) )) - (call_expression "(uint)(param_2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < uVar1)" ( (binary_expression "param_2 < uVar1" identifier < identifier) )))) ))) < number_literal)) )) (compound_statement "{\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }" { (expression_statement "iVar7 = puVar10[5];" (assignment_expression "iVar7 = puVar10[5]" identifier = (subscript_expression "puVar10[5]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar10[4];" (assignment_expression "uVar2 = puVar10[4]" identifier = (subscript_expression "puVar10[4]" identifier [ number_literal ])) ;) (if_statement "if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }" if (parenthesized_expression "((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0)" ( (binary_expression "(SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0" (parenthesized_expression "(SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4)))" ( (binary_expression "SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))" (call_expression "SBORROW4(iVar7,param_5)" identifier (argument_list "(iVar7,param_5)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))" identifier (argument_list "(iVar7 - param_5,(uint)(uVar2 < param_4))" ( (binary_expression "iVar7 - param_5" identifier - identifier) , (call_expression "(uint)(uVar2 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < param_4)" ( (binary_expression "uVar2 < param_4" identifier < identifier) ))) )))) )) == (binary_expression "(int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0" (cast_expression "(int)((iVar7 - param_5) - (uint)(uVar2 < param_4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar7 - param_5) - (uint)(uVar2 < param_4))" ( (binary_expression "(iVar7 - param_5) - (uint)(uVar2 < param_4)" (parenthesized_expression "(iVar7 - param_5)" ( (binary_expression "iVar7 - param_5" identifier - identifier) )) - (call_expression "(uint)(uVar2 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < param_4)" ( (binary_expression "uVar2 < param_4" identifier < identifier) )))) ))) < number_literal)) )) (compound_statement "{\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }" { (expression_statement "iVar8 = param_5 + (uint)(0xfffffffc < param_4);" (assignment_expression "iVar8 = param_5 + (uint)(0xfffffffc < param_4)" identifier = (binary_expression "param_5 + (uint)(0xfffffffc < param_4)" identifier + (call_expression "(uint)(0xfffffffc < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffc < param_4)" ( (binary_expression "0xfffffffc < param_4" number_literal < identifier) ))))) ;) (expression_statement "iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);" (assignment_expression "iVar9 = iVar6 + (uint)(0xfffffffc < uVar1)" identifier = (binary_expression "iVar6 + (uint)(0xfffffffc < uVar1)" identifier + (call_expression "(uint)(0xfffffffc < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffc < uVar1)" ( (binary_expression "0xfffffffc < uVar1" number_literal < identifier) ))))) ;) (expression_statement "uVar4 = (uint)(uVar1 + 3 < param_2);" (assignment_expression "uVar4 = (uint)(uVar1 + 3 < param_2)" identifier = (call_expression "(uint)(uVar1 + 3 < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 + 3 < param_2)" ( (binary_expression "uVar1 + 3 < param_2" (binary_expression "uVar1 + 3" identifier + number_literal) < identifier) )))) ;) (expression_statement "iVar5 = iVar9 - param_3;" (assignment_expression "iVar5 = iVar9 - param_3" identifier = (binary_expression "iVar9 - param_3" identifier - identifier)) ;) (if_statement "if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" if (parenthesized_expression "((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0)" ( (binary_expression "(SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0" (parenthesized_expression "(SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4))" ( (binary_expression "SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)" (call_expression "SBORROW4(iVar9,param_3)" identifier (argument_list "(iVar9,param_3)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar5,uVar4)" identifier (argument_list "(iVar5,uVar4)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar5 - uVar4) < 0" (cast_expression "(int)(iVar5 - uVar4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar5 - uVar4)" ( (binary_expression "iVar5 - uVar4" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }" { (expression_statement "uVar1 = (uint)(param_4 + 3 < uVar2);" (assignment_expression "uVar1 = (uint)(param_4 + 3 < uVar2)" identifier = (call_expression "(uint)(param_4 + 3 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + 3 < uVar2)" ( (binary_expression "param_4 + 3 < uVar2" (binary_expression "param_4 + 3" identifier + number_literal) < identifier) )))) ;) (if_statement "if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" if (parenthesized_expression "((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0)" ( (binary_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0" (parenthesized_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1))" ( (binary_expression "SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)" (call_expression "SBORROW4(iVar8,iVar7)" identifier (argument_list "(iVar8,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar8 - iVar7,uVar1)" identifier (argument_list "(iVar8 - iVar7,uVar1)" ( (binary_expression "iVar8 - iVar7" identifier - identifier) , identifier )))) )) == (binary_expression "(int)((iVar8 - iVar7) - uVar1) < 0" (cast_expression "(int)((iVar8 - iVar7) - uVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar8 - iVar7) - uVar1)" ( (binary_expression "(iVar8 - iVar7) - uVar1" (parenthesized_expression "(iVar8 - iVar7)" ( (binary_expression "iVar8 - iVar7" identifier - identifier) )) - identifier) ))) < number_literal)) )) (compound_statement "{\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }" { (expression_statement "puVar3 = (undefined4 *)*puVar10;" (assignment_expression "puVar3 = (undefined4 *)*puVar10" identifier = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "param_1[2] = param_1[2] + -1;" (assignment_expression "param_1[2] = param_1[2] + -1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "param_1[2] + -1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "FUN_001e9f90(puVar10);" (call_expression "FUN_001e9f90(puVar10)" identifier (argument_list "(puVar10)" ( identifier ))) ;) (expression_statement "FUN_001e6db0(puVar10);" (call_expression "FUN_001e6db0(puVar10)" identifier (argument_list "(puVar10)" ( identifier ))) ;) (expression_statement "puVar10 = puVar3;" (assignment_expression "puVar10 = puVar3" identifier = identifier) ;) }) (else_clause "else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" else (compound_statement "{\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" { (expression_statement "puVar10[2] = param_4;" (assignment_expression "puVar10[2] = param_4" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = param_5;" (assignment_expression "puVar10[3] = param_5" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" else (compound_statement "{\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" { (expression_statement "uVar2 = (uint)(param_4 + 3 < uVar2);" (assignment_expression "uVar2 = (uint)(param_4 + 3 < uVar2)" identifier = (call_expression "(uint)(param_4 + 3 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + 3 < uVar2)" ( (binary_expression "param_4 + 3 < uVar2" (binary_expression "param_4 + 3" identifier + number_literal) < identifier) )))) ;) (if_statement "if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" if (parenthesized_expression "((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0)" ( (binary_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0" (parenthesized_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2))" ( (binary_expression "SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)" (call_expression "SBORROW4(iVar8,iVar7)" identifier (argument_list "(iVar8,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar8 - iVar7,uVar2)" identifier (argument_list "(iVar8 - iVar7,uVar2)" ( (binary_expression "iVar8 - iVar7" identifier - identifier) , identifier )))) )) == (binary_expression "(int)((iVar8 - iVar7) - uVar2) < 0" (cast_expression "(int)((iVar8 - iVar7) - uVar2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar8 - iVar7) - uVar2)" ( (binary_expression "(iVar8 - iVar7) - uVar2" (parenthesized_expression "(iVar8 - iVar7)" ( (binary_expression "iVar8 - iVar7" identifier - identifier) )) - identifier) ))) < number_literal)) )) (compound_statement "{\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }" { (expression_statement "puVar10[4] = param_2;" (assignment_expression "puVar10[4] = param_2" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[5] = param_3;" (assignment_expression "puVar10[5] = param_3" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" else (compound_statement "{\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" { (expression_statement "puVar10[2] = param_4;" (assignment_expression "puVar10[2] = param_4" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = param_5;" (assignment_expression "puVar10[3] = param_5" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = FUN_001e5200(0x18);" (assignment_expression "iVar7 = FUN_001e5200(0x18)" identifier = (call_expression "FUN_001e5200(0x18)" identifier (argument_list "(0x18)" ( number_literal )))) ;) (expression_statement "*(int *)(iVar7 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar7 + 8) = uVar1;" (assignment_expression "*(uint *)(iVar7 + 8) = uVar1" (pointer_expression "*(uint *)(iVar7 + 8)" * (cast_expression "(uint *)(iVar7 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar7 + 0x10) = param_2;" (assignment_expression "*(uint *)(iVar7 + 0x10) = param_2" (pointer_expression "*(uint *)(iVar7 + 0x10)" * (cast_expression "(uint *)(iVar7 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar7 + 0x14) = param_3;" (assignment_expression "*(int *)(iVar7 + 0x14) = param_3" (pointer_expression "*(int *)(iVar7 + 0x14)" * (cast_expression "(int *)(iVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001e9f70(iVar7,puVar10);" (call_expression "FUN_001e9f70(iVar7,puVar10)" identifier (argument_list "(iVar7,puVar10)" ( identifier , identifier ))) ;) (expression_statement "DAT_0038f4bc = DAT_0038f4bc + 1;" (assignment_expression "DAT_0038f4bc = DAT_0038f4bc + 1" identifier = (binary_expression "DAT_0038f4bc + 1" identifier + number_literal)) ;) (expression_statement "param_1[2] = param_1[2] + 1;" (assignment_expression "param_1[2] = param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal)) ;) }))) }))) (expression_statement "param_1[3] = puVar10;" (assignment_expression "param_1[3] = puVar10" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) })) })) (if_statement "if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }" if (parenthesized_expression "((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0))" ( (binary_expression "(DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)" (parenthesized_expression "(DAT_0038f378[2] != 0)" ( (binary_expression "DAT_0038f378[2] != 0" (subscript_expression "DAT_0038f378[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)" ( (binary_expression "(*(byte *)(DAT_0038f378 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(DAT_0038f378 + 5) & 0x10)" ( (binary_expression "*(byte *)(DAT_0038f378 + 5) & 0x10" (pointer_expression "*(byte *)(DAT_0038f378 + 5)" * (cast_expression "(byte *)(DAT_0038f378 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 5)" ( (binary_expression "DAT_0038f378 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }" { (expression_statement "FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);" (call_expression "FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4)" identifier (argument_list "(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4)" ( (pointer_expression "*DAT_0038f378" * identifier) , (string_literal ""Free_list::remove(%d,%d) not found"" " string_content ") , identifier , identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Type propagation algorithm not settling */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void remove(Free_list * this, off_t start, off_t end) */\n\nint __thiscall gold::Free_list::remove(Free_list *this,char *__filename)\n\n{\n  size_t *psVar1;\n  _List_node_base *p_Var2;\n  _List_node_base *p_Var3;\n  char *pcVar4;\n  Free_list *pFVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  Parameters *pPVar9;\n  _List_node_base *this_00;\n  int iVar10;\n  int iVar11;\n  Free_list *this_01;\n  _List_node_base *in_stack_0000000c;\n  char *in_stack_00000010;\n  _List_node_base *in_stack_00000014;\n  \n  pPVar9 = (Parameters *)((uint)__filename ^ (uint)in_stack_00000010);\n  if (in_stack_00000014 != in_stack_0000000c ||\n      (Parameters *)((uint)__filename ^ (uint)in_stack_00000010) != (Parameters *)0x0) {\n    if ((SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))) ==\n        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");\n    }\n    num_removes = num_removes + 1;\n    this_01 = (Free_list *)(this->last_remove_)._M_node;\n    uVar6 = (uint)(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size);\n    iVar7 = (int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node;\n    if ((SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0) {\n      this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;\n    }\n    for (; this_01 != this;\n        this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                  ._M_impl._M_node.super__List_node_base._M_next) {\n      num_remove_visits = num_remove_visits + 1;\n      p_Var2 = (this_01->last_remove_)._M_node;\n      p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n               ._M_impl._M_node._M_size;\n      if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0) {\n        iVar7 = (int)this_01->length_;\n        pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              pFVar5 = (Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                       ._M_impl._M_node.super__List_node_base._M_next;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 - 1;\n              std::__detail::_List_node_base::_M_unhook((_List_node_base *)this_01);\n              operator_delete(this_01);\n              this_01 = pFVar5;\n            }\n            else {\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n            }\n          }\n          else {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              *(char **)&this_01->extend_ = __filename;\n              *(_List_node_base **)&this_01->length_ = in_stack_0000000c;\n            }\n            else {\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n              this_00 = (_List_node_base *)operator_new(0x18);\n              this_00[1]._M_prev = p_Var2;\n              this_00[1]._M_next = p_Var3;\n              this_00[2]._M_next = (_List_node_base *)__filename;\n              this_00[2]._M_prev = in_stack_0000000c;\n              std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)this_01);\n              num_nodes = num_nodes + 1;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 + 1;\n            }\n          }\n          (this->last_remove_)._M_node = (_List_node_base *)this_01;\n          return (int)this;\n        }\n      }\n    }\n    pPVar9 = parameters;\n    if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n      Errors::debug(parameters->errors_,"Free_list::remove(%d,%d) not found",__filename);\n      return (int)pPVar9;\n    }\n  }\n  return (int)pPVar9;\n}\n\n" comment comment comment comment (function_definition "int __thiscall gold::Free_list::remove(Free_list *this,char *__filename)\n\n{\n  size_t *psVar1;\n  _List_node_base *p_Var2;\n  _List_node_base *p_Var3;\n  char *pcVar4;\n  Free_list *pFVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  Parameters *pPVar9;\n  _List_node_base *this_00;\n  int iVar10;\n  int iVar11;\n  Free_list *this_01;\n  _List_node_base *in_stack_0000000c;\n  char *in_stack_00000010;\n  _List_node_base *in_stack_00000014;\n  \n  pPVar9 = (Parameters *)((uint)__filename ^ (uint)in_stack_00000010);\n  if (in_stack_00000014 != in_stack_0000000c ||\n      (Parameters *)((uint)__filename ^ (uint)in_stack_00000010) != (Parameters *)0x0) {\n    if ((SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))) ==\n        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");\n    }\n    num_removes = num_removes + 1;\n    this_01 = (Free_list *)(this->last_remove_)._M_node;\n    uVar6 = (uint)(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size);\n    iVar7 = (int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node;\n    if ((SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0) {\n      this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;\n    }\n    for (; this_01 != this;\n        this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                  ._M_impl._M_node.super__List_node_base._M_next) {\n      num_remove_visits = num_remove_visits + 1;\n      p_Var2 = (this_01->last_remove_)._M_node;\n      p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n               ._M_impl._M_node._M_size;\n      if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0) {\n        iVar7 = (int)this_01->length_;\n        pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              pFVar5 = (Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                       ._M_impl._M_node.super__List_node_base._M_next;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 - 1;\n              std::__detail::_List_node_base::_M_unhook((_List_node_base *)this_01);\n              operator_delete(this_01);\n              this_01 = pFVar5;\n            }\n            else {\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n            }\n          }" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Free_list::" identifier : : identifier : :) (function_declarator "remove(Free_list *this,char *__filename)" identifier (parameter_list "(Free_list *this,char *__filename)" ( (parameter_declaration "Free_list *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "char *__filename" primitive_type (pointer_declarator "*__filename" * identifier)) ))) (compound_statement "{\n  size_t *psVar1;\n  _List_node_base *p_Var2;\n  _List_node_base *p_Var3;\n  char *pcVar4;\n  Free_list *pFVar5;\n  uint uVar6;\n  int iVar7;\n  int iVar8;\n  Parameters *pPVar9;\n  _List_node_base *this_00;\n  int iVar10;\n  int iVar11;\n  Free_list *this_01;\n  _List_node_base *in_stack_0000000c;\n  char *in_stack_00000010;\n  _List_node_base *in_stack_00000014;\n  \n  pPVar9 = (Parameters *)((uint)__filename ^ (uint)in_stack_00000010);\n  if (in_stack_00000014 != in_stack_0000000c ||\n      (Parameters *)((uint)__filename ^ (uint)in_stack_00000010) != (Parameters *)0x0) {\n    if ((SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))) ==\n        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");\n    }\n    num_removes = num_removes + 1;\n    this_01 = (Free_list *)(this->last_remove_)._M_node;\n    uVar6 = (uint)(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size);\n    iVar7 = (int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node;\n    if ((SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0) {\n      this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;\n    }\n    for (; this_01 != this;\n        this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                  ._M_impl._M_node.super__List_node_base._M_next) {\n      num_remove_visits = num_remove_visits + 1;\n      p_Var2 = (this_01->last_remove_)._M_node;\n      p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n               ._M_impl._M_node._M_size;\n      if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0) {\n        iVar7 = (int)this_01->length_;\n        pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              pFVar5 = (Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                       ._M_impl._M_node.super__List_node_base._M_next;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 - 1;\n              std::__detail::_List_node_base::_M_unhook((_List_node_base *)this_01);\n              operator_delete(this_01);\n              this_01 = pFVar5;\n            }\n            else {\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n            }\n          }" { (declaration "size_t *psVar1;" primitive_type (pointer_declarator "*psVar1" * identifier) ;) (declaration "_List_node_base *p_Var2;" type_identifier (pointer_declarator "*p_Var2" * identifier) ;) (declaration "_List_node_base *p_Var3;" type_identifier (pointer_declarator "*p_Var3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "Free_list *pFVar5;" type_identifier (pointer_declarator "*pFVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "Parameters *pPVar9;" type_identifier (pointer_declarator "*pPVar9" * identifier) ;) (declaration "_List_node_base *this_00;" type_identifier (pointer_declarator "*this_00" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "Free_list *this_01;" type_identifier (pointer_declarator "*this_01" * identifier) ;) (declaration "_List_node_base *in_stack_0000000c;" type_identifier (pointer_declarator "*in_stack_0000000c" * identifier) ;) (declaration "char *in_stack_00000010;" primitive_type (pointer_declarator "*in_stack_00000010" * identifier) ;) (declaration "_List_node_base *in_stack_00000014;" type_identifier (pointer_declarator "*in_stack_00000014" * identifier) ;) (expression_statement "pPVar9 = (Parameters *)((uint)__filename ^ (uint)in_stack_00000010);" (assignment_expression "pPVar9 = (Parameters *)((uint)__filename ^ (uint)in_stack_00000010)" identifier = (cast_expression "(Parameters *)((uint)__filename ^ (uint)in_stack_00000010)" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)__filename ^ (uint)in_stack_00000010)" ( (binary_expression "(uint)__filename ^ (uint)in_stack_00000010" (cast_expression "(uint)__filename" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (cast_expression "(uint)in_stack_00000010" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (if_statement "if (in_stack_00000014 != in_stack_0000000c ||\n      (Parameters *)((uint)__filename ^ (uint)in_stack_00000010) != (Parameters *)0x0) {\n    if ((SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))) ==\n        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");\n    }\n    num_removes = num_removes + 1;\n    this_01 = (Free_list *)(this->last_remove_)._M_node;\n    uVar6 = (uint)(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size);\n    iVar7 = (int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node;\n    if ((SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0) {\n      this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;\n    }\n    for (; this_01 != this;\n        this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                  ._M_impl._M_node.super__List_node_base._M_next) {\n      num_remove_visits = num_remove_visits + 1;\n      p_Var2 = (this_01->last_remove_)._M_node;\n      p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n               ._M_impl._M_node._M_size;\n      if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0) {\n        iVar7 = (int)this_01->length_;\n        pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              pFVar5 = (Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                       ._M_impl._M_node.super__List_node_base._M_next;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 - 1;\n              std::__detail::_List_node_base::_M_unhook((_List_node_base *)this_01);\n              operator_delete(this_01);\n              this_01 = pFVar5;\n            }\n            else {\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n            }" if (parenthesized_expression "(in_stack_00000014 != in_stack_0000000c ||\n      (Parameters *)((uint)__filename ^ (uint)in_stack_00000010) != (Parameters *)0x0)" ( (binary_expression "in_stack_00000014 != in_stack_0000000c ||\n      (Parameters *)((uint)__filename ^ (uint)in_stack_00000010) != (Parameters *)0x0" (binary_expression "in_stack_00000014 != in_stack_0000000c" identifier != identifier) || (binary_expression "(Parameters *)((uint)__filename ^ (uint)in_stack_00000010) != (Parameters *)0x0" (cast_expression "(Parameters *)((uint)__filename ^ (uint)in_stack_00000010)" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)__filename ^ (uint)in_stack_00000010)" ( (binary_expression "(uint)__filename ^ (uint)in_stack_00000010" (cast_expression "(uint)__filename" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (cast_expression "(uint)in_stack_00000010" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) != (cast_expression "(Parameters *)0x0" ( (type_descriptor "Parameters *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) (compound_statement "{\n    if ((SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))) ==\n        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");\n    }\n    num_removes = num_removes + 1;\n    this_01 = (Free_list *)(this->last_remove_)._M_node;\n    uVar6 = (uint)(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size);\n    iVar7 = (int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node;\n    if ((SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0) {\n      this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;\n    }\n    for (; this_01 != this;\n        this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                  ._M_impl._M_node.super__List_node_base._M_next) {\n      num_remove_visits = num_remove_visits + 1;\n      p_Var2 = (this_01->last_remove_)._M_node;\n      p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n               ._M_impl._M_node._M_size;\n      if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0) {\n        iVar7 = (int)this_01->length_;\n        pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              pFVar5 = (Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                       ._M_impl._M_node.super__List_node_base._M_next;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 - 1;\n              std::__detail::_List_node_base::_M_unhook((_List_node_base *)this_01);\n              operator_delete(this_01);\n              this_01 = pFVar5;\n            }" { (if_statement "if ((SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))) ==\n        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");\n    }" if (parenthesized_expression "((SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))) ==\n        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0)" ( (binary_expression "(SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))) ==\n        (int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0" (parenthesized_expression "(SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010)))" ( (binary_expression "SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014) !=\n        SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))" (call_expression "SBORROW4((int)in_stack_0000000c,(int)in_stack_00000014)" identifier (argument_list "((int)in_stack_0000000c,(int)in_stack_00000014)" ( (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)in_stack_00000014" ( (type_descriptor "int" primitive_type) ) identifier) ))) != (call_expression "SBORROW4((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))" identifier (argument_list "((int)in_stack_0000000c - (int)in_stack_00000014,\n                 (uint)(__filename < in_stack_00000010))" ( (binary_expression "(int)in_stack_0000000c - (int)in_stack_00000014" (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_stack_00000014" ( (type_descriptor "int" primitive_type) ) identifier)) , (call_expression "(uint)(__filename < in_stack_00000010)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__filename < in_stack_00000010)" ( (binary_expression "__filename < in_stack_00000010" identifier < identifier) ))) )))) )) == (binary_expression "(int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)) < 0" (cast_expression "(int)(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010))" ( (binary_expression "((int)in_stack_0000000c - (int)in_stack_00000014) -\n             (uint)(__filename < in_stack_00000010)" (parenthesized_expression "((int)in_stack_0000000c - (int)in_stack_00000014)" ( (binary_expression "(int)in_stack_0000000c - (int)in_stack_00000014" (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)in_stack_00000014" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(__filename < in_stack_00000010)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__filename < in_stack_00000010)" ( (binary_expression "__filename < in_stack_00000010" identifier < identifier) )))) ))) < number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");\n    }" { comment (expression_statement "do_gold_unreachable("../../gold/layout.cc",0x6d,"remove");" (call_expression "do_gold_unreachable("../../gold/layout.cc",0x6d,"remove")" identifier (argument_list "("../../gold/layout.cc",0x6d,"remove")" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""remove"" " string_content ") ))) ;) })) (expression_statement "num_removes = num_removes + 1;" (assignment_expression "num_removes = num_removes + 1" identifier = (binary_expression "num_removes + 1" identifier + number_literal)) ;) (expression_statement "this_01 = (Free_list *)(this->last_remove_)._M_node;" (assignment_expression "this_01 = (Free_list *)(this->last_remove_)._M_node" identifier = (cast_expression "(Free_list *)(this->last_remove_)._M_node" ( (type_descriptor "Free_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->last_remove_)._M_node" (parenthesized_expression "(this->last_remove_)" ( (field_expression "this->last_remove_" identifier -> field_identifier) )) . field_identifier))) ;) (expression_statement "uVar6 = (uint)(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size);" (assignment_expression "uVar6 = (uint)(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size)" identifier = (call_expression "(uint)(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                          ._M_impl._M_node._M_size)" ( (binary_expression "__filename <\n                  (char *)(this_01->list_).\n                          super__List_base<gold" (binary_expression "__filename <\n                  (char *)(this_01->list_).\n                          super__List_base" identifier < (cast_expression "(char *)(this_01->list_).\n                          super__List_base" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "(this_01->list_).\n                          super__List_base" (parenthesized_expression "(this_01->list_)" ( (field_expression "this_01->list_" identifier -> field_identifier) )) . field_identifier))) < identifier) (ERROR "::Free_list::Free_list_node" : : identifier : : identifier) , (ERROR "_std::allocator<gold::Free_list::" identifier : : (binary_expression "allocator<gold" identifier < identifier) : : identifier : :) (field_expression "Free_list_node>_>\n                          ._M_impl._M_node._M_size" (field_expression "Free_list_node>_>\n                          ._M_impl._M_node" (field_expression "Free_list_node>_>\n                          ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) )))) ;) (expression_statement "iVar7 = (int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node;" (assignment_expression "iVar7 = (int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node" identifier = (binary_expression "(int)in_stack_0000000c - (int)(this_01->last_remove_)._M_node" (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(this_01->last_remove_)._M_node" ( (type_descriptor "int" primitive_type) ) (field_expression "(this_01->last_remove_)._M_node" (parenthesized_expression "(this_01->last_remove_)" ( (field_expression "this_01->last_remove_" identifier -> field_identifier) )) . field_identifier)))) ;) (if_statement "if ((SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0) {\n      this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;\n    }" if (parenthesized_expression "((SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0)" ( (binary_expression "(SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)) != (int)(iVar7 - uVar6) < 0" (parenthesized_expression "(SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6))" ( (binary_expression "SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node) !=\n        SBORROW4(iVar7,uVar6)" (call_expression "SBORROW4((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node)" identifier (argument_list "((int)in_stack_0000000c,(int)(this_01->last_remove_)._M_node)" ( (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)(this_01->last_remove_)._M_node" ( (type_descriptor "int" primitive_type) ) (field_expression "(this_01->last_remove_)._M_node" (parenthesized_expression "(this_01->last_remove_)" ( (field_expression "this_01->last_remove_" identifier -> field_identifier) )) . field_identifier)) ))) != (call_expression "SBORROW4(iVar7,uVar6)" identifier (argument_list "(iVar7,uVar6)" ( identifier , identifier )))) )) != (binary_expression "(int)(iVar7 - uVar6) < 0" (cast_expression "(int)(iVar7 - uVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar7 - uVar6)" ( (binary_expression "iVar7 - uVar6" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n      this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;\n    }" { (ERROR "this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::" (comma_expression "this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold::Free_list::Free_list_node,_std" (assignment_expression "this_01 = (Free_list *)\n                (this->list_).\n                super__List_base<gold" identifier = (binary_expression "(Free_list *)\n                (this->list_).\n                super__List_base<gold" (cast_expression "(Free_list *)\n                (this->list_).\n                super__List_base" ( (type_descriptor "Free_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this->list_).\n                super__List_base" (parenthesized_expression "(this->list_)" ( (field_expression "this->list_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Free_list::Free_list_node" : : identifier : : identifier) , identifier) : : (binary_expression "allocator<gold" identifier < identifier) : :) (labeled_statement "Free_list::Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;" statement_identifier : (ERROR ":" :) (expression_statement "Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next;" (field_expression "Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base._M_next" (field_expression "Free_list_node>_>\n                ._M_impl._M_node.super__List_node_base" (field_expression "Free_list_node>_>\n                ._M_impl._M_node" (field_expression "Free_list_node>_>\n                ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) . field_identifier) ;)) })) (for_statement "for (; this_01 != this;\n        this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                  ._M_impl._M_node.super__List_node_base._M_next) {\n      num_remove_visits = num_remove_visits + 1;\n      p_Var2 = (this_01->last_remove_)._M_node;\n      p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n               ._M_impl._M_node._M_size;\n      if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0) {\n        iVar7 = (int)this_01->length_;\n        pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              pFVar5 = (Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                       ._M_impl._M_node.super__List_node_base._M_next;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;" for ( (ERROR "; this_01 != this;\n        this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                  ._M_impl._M_node.super__List_node_base._M_next) {\n      num_remove_visits = num_remove_visits + 1;\n      p_Var2 = (this_01->last_remove_)._M_node;\n      p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::" ; (binary_expression "this_01 != this" identifier != identifier) ; (comma_expression "this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold::Free_list::Free_list_node,_std" (assignment_expression "this_01 = (Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold" identifier = (binary_expression "(Free_list *)\n                  (this_01->list_).\n                  super__List_base<gold" (cast_expression "(Free_list *)\n                  (this_01->list_).\n                  super__List_base" ( (type_descriptor "Free_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this_01->list_).\n                  super__List_base" (parenthesized_expression "(this_01->list_)" ( (field_expression "this_01->list_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Free_list::Free_list_node" : : identifier : : identifier) , identifier) : : identifier < identifier : : identifier : : identifier > identifier > . (field_expression "_M_impl._M_node.super__List_node_base._M_next" (field_expression "_M_impl._M_node.super__List_node_base" (field_expression "_M_impl._M_node" identifier . field_identifier) . field_identifier) . field_identifier) ) { (assignment_expression "num_remove_visits = num_remove_visits + 1" identifier = (binary_expression "num_remove_visits + 1" identifier + number_literal)) ; (assignment_expression "p_Var2 = (this_01->last_remove_)._M_node" identifier = (field_expression "(this_01->last_remove_)._M_node" (parenthesized_expression "(this_01->last_remove_)" ( (field_expression "this_01->last_remove_" identifier -> field_identifier) )) . field_identifier)) ; (comma_expression "p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold::Free_list::Free_list_node,_std" (assignment_expression "p_Var3 = (_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold" identifier = (binary_expression "(_List_node_base *)\n               (this_01->list_).\n               super__List_base<gold" (cast_expression "(_List_node_base *)\n               (this_01->list_).\n               super__List_base" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this_01->list_).\n               super__List_base" (parenthesized_expression "(this_01->list_)" ( (field_expression "this_01->list_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Free_list::Free_list_node" : : identifier : : identifier) , identifier) : : identifier < identifier : : identifier : :) (field_expression "Free_list_node>_>\n               ._M_impl._M_node._M_size" (field_expression "Free_list_node>_>\n               ._M_impl._M_node" (field_expression "Free_list_node>_>\n               ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) ; (assignment_expression "if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0) {\n        iVar7 = (int)this_01->length_" (call_expression "if ((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0)" identifier (argument_list "((SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0)" ( (binary_expression "(SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))) ==\n          (int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0" (parenthesized_expression "(SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3)))" ( (binary_expression "SBORROW4((int)in_stack_0000000c,(int)p_Var2) !=\n          SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))" (call_expression "SBORROW4((int)in_stack_0000000c,(int)p_Var2)" identifier (argument_list "((int)in_stack_0000000c,(int)p_Var2)" ( (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) , (cast_expression "(int)p_Var2" ( (type_descriptor "int" primitive_type) ) identifier) ))) != (call_expression "SBORROW4((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))" identifier (argument_list "((int)in_stack_0000000c - (int)p_Var2,(uint)(__filename < p_Var3))" ( (binary_expression "(int)in_stack_0000000c - (int)p_Var2" (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)p_Var2" ( (type_descriptor "int" primitive_type) ) identifier)) , (call_expression "(uint)(__filename < p_Var3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__filename < p_Var3)" ( (binary_expression "__filename < p_Var3" identifier < identifier) ))) )))) )) == (binary_expression "(int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)) < 0" (cast_expression "(int)(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3))" ( (binary_expression "((int)in_stack_0000000c - (int)p_Var2) - (uint)(__filename < p_Var3)" (parenthesized_expression "((int)in_stack_0000000c - (int)p_Var2)" ( (binary_expression "(int)in_stack_0000000c - (int)p_Var2" (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)p_Var2" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(__filename < p_Var3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(__filename < p_Var3)" ( (binary_expression "__filename < p_Var3" identifier < identifier) )))) ))) < number_literal)) ))) (ERROR "{\n        iVar7" { identifier) = (cast_expression "(int)this_01->length_" ( (type_descriptor "int" primitive_type) ) (field_expression "this_01->length_" identifier -> field_identifier))) ; (comma_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              pFVar5 = (Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold::Free_list::Free_list_node,_std" (assignment_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              pFVar5 = (Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold" (call_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);\n            if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0)" (assignment_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0) {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4)" (call_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c;\n          if ((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0)" (binary_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename);\n          iVar8 = iVar11 - (int)in_stack_0000000c" (call_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)((char *)((int)&p_Var3->_M_next + 3) < __filename)" (call_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3);\n          uVar6 = (uint)" (binary_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)&p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3)" (call_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)\n          ;\n          iVar11 = (int)" (assignment_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0) {\n          iVar10 = (int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)" (call_expression "pcVar4 = *(char **)&this_01->extend_;\n        if ((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0)" (assignment_expression "pcVar4 = *(char **)&this_01->extend_" identifier = (pointer_expression "*(char **)&this_01->extend_" * (cast_expression "(char **)&this_01->extend_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this_01->extend_" & (field_expression "this_01->extend_" identifier -> field_identifier))))) (ERROR ";\n        if" ; if) (argument_list "((SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0)" ( (binary_expression "(SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))) ==\n            (int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0" (parenthesized_expression "(SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010)))" ( (binary_expression "SBORROW4(iVar7,(int)in_stack_00000014) !=\n            SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))" (call_expression "SBORROW4(iVar7,(int)in_stack_00000014)" identifier (argument_list "(iVar7,(int)in_stack_00000014)" ( identifier , (cast_expression "(int)in_stack_00000014" ( (type_descriptor "int" primitive_type) ) identifier) ))) != (call_expression "SBORROW4(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))" identifier (argument_list "(iVar7 - (int)in_stack_00000014,(uint)(pcVar4 < in_stack_00000010))" ( (binary_expression "iVar7 - (int)in_stack_00000014" identifier - (cast_expression "(int)in_stack_00000014" ( (type_descriptor "int" primitive_type) ) identifier)) , (call_expression "(uint)(pcVar4 < in_stack_00000010)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar4 < in_stack_00000010)" ( (binary_expression "pcVar4 < in_stack_00000010" identifier < identifier) ))) )))) )) == (binary_expression "(int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)) < 0" (cast_expression "(int)((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010))" ( (binary_expression "(iVar7 - (int)in_stack_00000014) - (uint)(pcVar4 < in_stack_00000010)" (parenthesized_expression "(iVar7 - (int)in_stack_00000014)" ( (binary_expression "iVar7 - (int)in_stack_00000014" identifier - (cast_expression "(int)in_stack_00000014" ( (type_descriptor "int" primitive_type) ) identifier)) )) - (call_expression "(uint)(pcVar4 < in_stack_00000010)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(pcVar4 < in_stack_00000010)" ( (binary_expression "pcVar4 < in_stack_00000010" identifier < identifier) )))) ))) < number_literal)) ))) (ERROR "{\n          iVar10" { identifier) = (binary_expression "(int)&in_stack_00000014->_M_next + (uint)((char *)0xfffffffc < in_stack_00000010)" (cast_expression "(int)&in_stack_00000014->_M_next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&in_stack_00000014->_M_next" & (field_expression "in_stack_00000014->_M_next" identifier -> field_identifier))) + (call_expression "(uint)((char *)0xfffffffc < in_stack_00000010)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((char *)0xfffffffc < in_stack_00000010)" ( (binary_expression "(char *)0xfffffffc < in_stack_00000010" (cast_expression "(char *)0xfffffffc" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))))) (ERROR ";\n          iVar11 =" ; identifier =) (argument_list "(int)" ( identifier ))) & (binary_expression "p_Var2->_M_next + (uint)((_List_node_base *)0xfffffffc < p_Var3)" (field_expression "p_Var2->_M_next" identifier -> field_identifier) + (call_expression "(uint)((_List_node_base *)0xfffffffc < p_Var3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((_List_node_base *)0xfffffffc < p_Var3)" ( (binary_expression "(_List_node_base *)0xfffffffc < p_Var3" (cast_expression "(_List_node_base *)0xfffffffc" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) ))))) (ERROR ";\n          uVar6 =" ; identifier =) (argument_list "(uint)" ( identifier ))) (argument_list "((char *)((int)&p_Var3->_M_next + 3) < __filename)" ( (binary_expression "(char *)((int)&p_Var3->_M_next + 3) < __filename" (cast_expression "(char *)((int)&p_Var3->_M_next + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&p_Var3->_M_next + 3)" ( (binary_expression "(int)&p_Var3->_M_next + 3" (cast_expression "(int)&p_Var3->_M_next" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&p_Var3->_M_next" & (field_expression "p_Var3->_M_next" identifier -> field_identifier))) + number_literal) ))) < identifier) ))) (ERROR ";\n          iVar8 = iVar11" ; identifier = identifier) - (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier)) (ERROR ";\n          if" ; if) (argument_list "((SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0)" ( (binary_expression "(SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)) ==\n              (int)(iVar8 - uVar6) < 0" (parenthesized_expression "(SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6))" ( (binary_expression "SBORROW4(iVar11,(int)in_stack_0000000c) != SBORROW4(iVar8,uVar6)" (call_expression "SBORROW4(iVar11,(int)in_stack_0000000c)" identifier (argument_list "(iVar11,(int)in_stack_0000000c)" ( identifier , (cast_expression "(int)in_stack_0000000c" ( (type_descriptor "int" primitive_type) ) identifier) ))) != (call_expression "SBORROW4(iVar8,uVar6)" identifier (argument_list "(iVar8,uVar6)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar8 - uVar6) < 0" (cast_expression "(int)(iVar8 - uVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar8 - uVar6)" ( (binary_expression "iVar8 - uVar6" identifier - identifier) ))) < number_literal)) ))) (ERROR "{\n            uVar6" { identifier) = (call_expression "(uint)(in_stack_00000010 + 3 < pcVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_stack_00000010 + 3 < pcVar4)" ( (binary_expression "in_stack_00000010 + 3 < pcVar4" (binary_expression "in_stack_00000010 + 3" identifier + number_literal) < identifier) )))) (ERROR ";\n            if" ; if) (argument_list "((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0)" ( (binary_expression "(SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0" (parenthesized_expression "(SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6))" ( (binary_expression "SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)" (call_expression "SBORROW4(iVar10,iVar7)" identifier (argument_list "(iVar10,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar10 - iVar7,uVar6)" identifier (argument_list "(iVar10 - iVar7,uVar6)" ( (binary_expression "iVar10 - iVar7" identifier - identifier) , identifier )))) )) == (binary_expression "(int)((iVar10 - iVar7) - uVar6) < 0" (cast_expression "(int)((iVar10 - iVar7) - uVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar10 - iVar7) - uVar6)" ( (binary_expression "(iVar10 - iVar7) - uVar6" (parenthesized_expression "(iVar10 - iVar7)" ( (binary_expression "iVar10 - iVar7" identifier - identifier) )) - identifier) ))) < number_literal)) ))) (ERROR "{\n              pFVar5" { identifier) = (binary_expression "(Free_list *)\n                       (this_01->list_).\n                       super__List_base<gold" (cast_expression "(Free_list *)\n                       (this_01->list_).\n                       super__List_base" ( (type_descriptor "Free_list *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(this_01->list_).\n                       super__List_base" (parenthesized_expression "(this_01->list_)" ( (field_expression "this_01->list_" identifier -> field_identifier) )) . field_identifier)) < identifier)) (ERROR "::Free_list::Free_list_node" : : identifier : : identifier) , identifier) (ERROR "::allocator<gold::Free_list::Free_list_node>_>\n                       ._M_impl._M_node.super__List_node_base._M_next;\n              psVar1 = &(this->list_" : : identifier < identifier : : identifier : : identifier > identifier > . identifier . identifier . identifier . identifier ; identifier = & ( identifier -> identifier) ) (ERROR ".\n                        super__List_base<gold::" . (binary_expression "super__List_base<gold" identifier < identifier) : :) (labeled_statement "Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;" statement_identifier (ERROR "::Free_list_node,_std::allocator<gold:" : : (comma_expression "Free_list_node,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;" statement_identifier : (ERROR ":" :) (expression_statement "Free_list_node>_>\n                        ._M_impl._M_node._M_size;" (field_expression "Free_list_node>_>\n                        ._M_impl._M_node._M_size" (field_expression "Free_list_node>_>\n                        ._M_impl._M_node" (field_expression "Free_list_node>_>\n                        ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) ;)))) (expression_statement "*psVar1 = *psVar1 - 1;" (assignment_expression "*psVar1 = *psVar1 - 1" (pointer_expression "*psVar1" * identifier) = (binary_expression "*psVar1 - 1" (pointer_expression "*psVar1" * identifier) - number_literal)) ;) (labeled_statement "std::__detail::_List_node_base::_M_unhook((_List_node_base *)this_01);" statement_identifier : (ERROR ":" :) (labeled_statement "__detail::_List_node_base::_M_unhook((_List_node_base *)this_01);" statement_identifier : (ERROR ":" :) (labeled_statement "_List_node_base::_M_unhook((_List_node_base *)this_01);" statement_identifier : (ERROR ":" :) (expression_statement "_M_unhook((_List_node_base *)this_01);" (call_expression "_M_unhook((_List_node_base *)this_01)" identifier (argument_list "((_List_node_base *)this_01)" ( (cast_expression "(_List_node_base *)this_01" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)))) (expression_statement "operator_delete(this_01);" (call_expression "operator_delete(this_01)" identifier (argument_list "(this_01)" ( identifier ))) ;) (expression_statement "this_01 = pFVar5;" (assignment_expression "this_01 = pFVar5" identifier = identifier) ;) }) (else_clause "else {\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n            }" else (compound_statement "{\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n            }" { (ERROR "(this_01->list_).\n              super__List_base<gold::" (binary_expression "(this_01->list_).\n              super__List_base<gold" (field_expression "(this_01->list_).\n              super__List_base" (parenthesized_expression "(this_01->list_)" ( (field_expression "this_01->list_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;" statement_identifier (ERROR "::Free_list_node,_std::allocator<gold:" : : (comma_expression "Free_list_node,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;" statement_identifier : (ERROR ":" :) (expression_statement "Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;" (assignment_expression "Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010" (field_expression "Free_list_node>_>\n              ._M_impl._M_node._M_size" (field_expression "Free_list_node>_>\n              ._M_impl._M_node" (field_expression "Free_list_node>_>\n              ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(size_t)in_stack_00000010" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;))) (expression_statement "(this_01->last_remove_)._M_node = in_stack_00000014;" (assignment_expression "(this_01->last_remove_)._M_node = in_stack_00000014" (field_expression "(this_01->last_remove_)._M_node" (parenthesized_expression "(this_01->last_remove_)" ( (field_expression "this_01->last_remove_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) }))) })) (declaration "else {\n            uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4);" type_identifier (ERROR "{" {) (init_declarator "uVar6 = (uint)(in_stack_00000010 + 3 < pcVar4)" identifier = (call_expression "(uint)(in_stack_00000010 + 3 < pcVar4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(in_stack_00000010 + 3 < pcVar4)" ( (binary_expression "in_stack_00000010 + 3 < pcVar4" (binary_expression "in_stack_00000010 + 3" identifier + number_literal) < identifier) )))) ;) (if_statement "if ((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0) {\n              *(char **)&this_01->extend_ = __filename;\n              *(_List_node_base **)&this_01->length_ = in_stack_0000000c;\n            }\n            else {\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n              this_00 = (_List_node_base *)operator_new(0x18);\n              this_00[1]._M_prev = p_Var2;\n              this_00[1]._M_next = p_Var3;\n              this_00[2]._M_next = (_List_node_base *)__filename;\n              this_00[2]._M_prev = in_stack_0000000c;\n              std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)this_01);\n              num_nodes = num_nodes + 1;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 + 1;\n            }" if (parenthesized_expression "((SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0)" ( (binary_expression "(SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)) ==\n                (int)((iVar10 - iVar7) - uVar6) < 0" (parenthesized_expression "(SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6))" ( (binary_expression "SBORROW4(iVar10,iVar7) != SBORROW4(iVar10 - iVar7,uVar6)" (call_expression "SBORROW4(iVar10,iVar7)" identifier (argument_list "(iVar10,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar10 - iVar7,uVar6)" identifier (argument_list "(iVar10 - iVar7,uVar6)" ( (binary_expression "iVar10 - iVar7" identifier - identifier) , identifier )))) )) == (binary_expression "(int)((iVar10 - iVar7) - uVar6) < 0" (cast_expression "(int)((iVar10 - iVar7) - uVar6)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar10 - iVar7) - uVar6)" ( (binary_expression "(iVar10 - iVar7) - uVar6" (parenthesized_expression "(iVar10 - iVar7)" ( (binary_expression "iVar10 - iVar7" identifier - identifier) )) - identifier) ))) < number_literal)) )) (compound_statement "{\n              *(char **)&this_01->extend_ = __filename;\n              *(_List_node_base **)&this_01->length_ = in_stack_0000000c;\n            }" { (expression_statement "*(char **)&this_01->extend_ = __filename;" (assignment_expression "*(char **)&this_01->extend_ = __filename" (pointer_expression "*(char **)&this_01->extend_" * (cast_expression "(char **)&this_01->extend_" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this_01->extend_" & (field_expression "this_01->extend_" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(_List_node_base **)&this_01->length_ = in_stack_0000000c;" (assignment_expression "*(_List_node_base **)&this_01->length_ = in_stack_0000000c" (pointer_expression "*(_List_node_base **)&this_01->length_" * (cast_expression "(_List_node_base **)&this_01->length_" ( (type_descriptor "_List_node_base **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&this_01->length_" & (field_expression "this_01->length_" identifier -> field_identifier)))) = identifier) ;) }) (else_clause "else {\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n              this_00 = (_List_node_base *)operator_new(0x18);\n              this_00[1]._M_prev = p_Var2;\n              this_00[1]._M_next = p_Var3;\n              this_00[2]._M_next = (_List_node_base *)__filename;\n              this_00[2]._M_prev = in_stack_0000000c;\n              std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)this_01);\n              num_nodes = num_nodes + 1;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 + 1;\n            }" else (compound_statement "{\n              (this_01->list_).\n              super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;\n              (this_01->last_remove_)._M_node = in_stack_00000014;\n              this_00 = (_List_node_base *)operator_new(0x18);\n              this_00[1]._M_prev = p_Var2;\n              this_00[1]._M_next = p_Var3;\n              this_00[2]._M_next = (_List_node_base *)__filename;\n              this_00[2]._M_prev = in_stack_0000000c;\n              std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)this_01);\n              num_nodes = num_nodes + 1;\n              psVar1 = &(this->list_).\n                        super__List_base<gold::Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;\n              *psVar1 = *psVar1 + 1;\n            }" { (ERROR "(this_01->list_).\n              super__List_base<gold::" (binary_expression "(this_01->list_).\n              super__List_base<gold" (field_expression "(this_01->list_).\n              super__List_base" (parenthesized_expression "(this_01->list_)" ( (field_expression "this_01->list_" identifier -> field_identifier) )) . field_identifier) < identifier) : :) (labeled_statement "Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;" statement_identifier (ERROR "::Free_list_node,_std::allocator<gold:" : : (comma_expression "Free_list_node,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Free_list::Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;" statement_identifier : (ERROR ":" :) (expression_statement "Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010;" (assignment_expression "Free_list_node>_>\n              ._M_impl._M_node._M_size = (size_t)in_stack_00000010" (field_expression "Free_list_node>_>\n              ._M_impl._M_node._M_size" (field_expression "Free_list_node>_>\n              ._M_impl._M_node" (field_expression "Free_list_node>_>\n              ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) = (cast_expression "(size_t)in_stack_00000010" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;))) (expression_statement "(this_01->last_remove_)._M_node = in_stack_00000014;" (assignment_expression "(this_01->last_remove_)._M_node = in_stack_00000014" (field_expression "(this_01->last_remove_)._M_node" (parenthesized_expression "(this_01->last_remove_)" ( (field_expression "this_01->last_remove_" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "this_00 = (_List_node_base *)operator_new(0x18);" (assignment_expression "this_00 = (_List_node_base *)operator_new(0x18)" identifier = (cast_expression "(_List_node_base *)operator_new(0x18)" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "operator_new(0x18)" identifier (argument_list "(0x18)" ( number_literal ))))) ;) (expression_statement "this_00[1]._M_prev = p_Var2;" (assignment_expression "this_00[1]._M_prev = p_Var2" (field_expression "this_00[1]._M_prev" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "this_00[1]._M_next = p_Var3;" (assignment_expression "this_00[1]._M_next = p_Var3" (field_expression "this_00[1]._M_next" (subscript_expression "this_00[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "this_00[2]._M_next = (_List_node_base *)__filename;" (assignment_expression "this_00[2]._M_next = (_List_node_base *)__filename" (field_expression "this_00[2]._M_next" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(_List_node_base *)__filename" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "this_00[2]._M_prev = in_stack_0000000c;" (assignment_expression "this_00[2]._M_prev = in_stack_0000000c" (field_expression "this_00[2]._M_prev" (subscript_expression "this_00[2]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (labeled_statement "std::__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)this_01);" statement_identifier : (ERROR ":" :) (labeled_statement "__detail::_List_node_base::_M_hook(this_00,(_List_node_base *)this_01);" statement_identifier : (ERROR ":" :) (labeled_statement "_List_node_base::_M_hook(this_00,(_List_node_base *)this_01);" statement_identifier : (ERROR ":" :) (expression_statement "_M_hook(this_00,(_List_node_base *)this_01);" (call_expression "_M_hook(this_00,(_List_node_base *)this_01)" identifier (argument_list "(this_00,(_List_node_base *)this_01)" ( identifier , (cast_expression "(_List_node_base *)this_01" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)))) (expression_statement "num_nodes = num_nodes + 1;" (assignment_expression "num_nodes = num_nodes + 1" identifier = (binary_expression "num_nodes + 1" identifier + number_literal)) ;) (ERROR "psVar1 = &(this->list_).\n                        super__List_base<gold::" (assignment_expression "psVar1 = &(this->list_).\n                        super__List_base<gold" identifier = (binary_expression "&(this->list_).\n                        super__List_base<gold" (pointer_expression "&(this->list_).\n                        super__List_base" & (field_expression "(this->list_).\n                        super__List_base" (parenthesized_expression "(this->list_)" ( (field_expression "this->list_" identifier -> field_identifier) )) . field_identifier)) < identifier)) : :) (labeled_statement "Free_list::Free_list_node,_std::allocator<gold::Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;" statement_identifier (ERROR "::Free_list_node,_std::allocator<gold:" : : (comma_expression "Free_list_node,_std" identifier , identifier) : : (binary_expression "allocator<gold" identifier < identifier) :) : (labeled_statement "Free_list::Free_list_node>_>\n                        ._M_impl._M_node._M_size;" statement_identifier : (ERROR ":" :) (expression_statement "Free_list_node>_>\n                        ._M_impl._M_node._M_size;" (field_expression "Free_list_node>_>\n                        ._M_impl._M_node._M_size" (field_expression "Free_list_node>_>\n                        ._M_impl._M_node" (field_expression "Free_list_node>_>\n                        ._M_impl" (binary_expression "Free_list_node>_" identifier > identifier) (ERROR ">" >) . field_identifier) . field_identifier) . field_identifier) ;))) (expression_statement "*psVar1 = *psVar1 + 1;" (assignment_expression "*psVar1 = *psVar1 + 1" (pointer_expression "*psVar1" * identifier) = (binary_expression "*psVar1 + 1" (pointer_expression "*psVar1" * identifier) + number_literal)) ;) }))) (ERROR "}" }) (expression_statement "(this->last_remove_)._M_node = (_List_node_base *)this_01;" (assignment_expression "(this->last_remove_)._M_node = (_List_node_base *)this_01" (field_expression "(this->last_remove_)._M_node" (parenthesized_expression "(this->last_remove_)" ( (field_expression "this->last_remove_" identifier -> field_identifier) )) . field_identifier) = (cast_expression "(_List_node_base *)this_01" ( (type_descriptor "_List_node_base *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (return_statement "return (int)this;" return (cast_expression "(int)this" ( (type_descriptor "int" primitive_type) ) identifier) ;) (ERROR "}\n      }\n    }" } } }) (expression_statement "pPVar9 = parameters;" (assignment_expression "pPVar9 = parameters" identifier = identifier) ;) (if_statement "if ((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)) {\n      Errors::debug(parameters->errors_,"Free_list::remove(%d,%d) not found",__filename);\n      return (int)pPVar9;\n    }" if (parenthesized_expression "((parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0))" ( (binary_expression "(parameters->options_ != (General_options *)0x0) && ((parameters->debug_ & 0x10) != 0)" (parenthesized_expression "(parameters->options_ != (General_options *)0x0)" ( (binary_expression "parameters->options_ != (General_options *)0x0" (field_expression "parameters->options_" identifier -> field_identifier) != (cast_expression "(General_options *)0x0" ( (type_descriptor "General_options *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((parameters->debug_ & 0x10) != 0)" ( (binary_expression "(parameters->debug_ & 0x10) != 0" (parenthesized_expression "(parameters->debug_ & 0x10)" ( (binary_expression "parameters->debug_ & 0x10" (field_expression "parameters->debug_" identifier -> field_identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      Errors::debug(parameters->errors_,"Free_list::remove(%d,%d) not found",__filename);\n      return (int)pPVar9;\n    }" { (labeled_statement "Errors::debug(parameters->errors_,"Free_list::remove(%d,%d) not found",__filename);" statement_identifier : (ERROR ":" :) (expression_statement "debug(parameters->errors_,"Free_list::remove(%d,%d) not found",__filename);" (call_expression "debug(parameters->errors_,"Free_list::remove(%d,%d) not found",__filename)" identifier (argument_list "(parameters->errors_,"Free_list::remove(%d,%d) not found",__filename)" ( (field_expression "parameters->errors_" identifier -> field_identifier) , (string_literal ""Free_list::remove(%d,%d) not found"" " string_content ") , identifier ))) ;)) (return_statement "return (int)pPVar9;" return (cast_expression "(int)pPVar9" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (ERROR "}" }) (return_statement "return (int)pPVar9;" return (cast_expression "(int)pPVar9" ( (type_descriptor "int" primitive_type) ) identifier) ;) (ERROR "}" }))
(translation_unit "void FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  \n  if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  \n  if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)" identifier (parameter_list "(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "uint param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  \n  if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (if_statement "if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }" if (parenthesized_expression "(param_5 != param_3 || param_2 != param_4)" ( (binary_expression "param_5 != param_3 || param_2 != param_4" (binary_expression "param_5 != param_3" identifier != identifier) || (binary_expression "param_2 != param_4" identifier != identifier)) )) (compound_statement "{\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }" { (expression_statement "iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);" (assignment_expression "iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4)" identifier = (binary_expression "(param_3 - param_5) - (uint)(param_2 < param_4)" (parenthesized_expression "(param_3 - param_5)" ( (binary_expression "param_3 - param_5" identifier - identifier) )) - (call_expression "(uint)(param_2 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < param_4)" ( (binary_expression "param_2 < param_4" identifier < identifier) ))))) ;) (if_statement "if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }" if (parenthesized_expression "((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0)" ( (binary_expression "(SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0" (parenthesized_expression "(SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4)))" ( (binary_expression "SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))" (call_expression "SBORROW4(param_3,param_5)" identifier (argument_list "(param_3,param_5)" ( identifier , identifier ))) != (call_expression "SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))" identifier (argument_list "(param_3 - param_5,(uint)(param_2 < param_4))" ( (binary_expression "param_3 - param_5" identifier - identifier) , (call_expression "(uint)(param_2 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < param_4)" ( (binary_expression "param_2 < param_4" identifier < identifier) ))) )))) )) == (binary_expression "iVar6 < 0" identifier < number_literal)) )) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }" { (expression_statement "FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);" (call_expression "FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6)" identifier (argument_list "("../../gold/layout.cc",0x6d,"remove",iVar6)" ( (string_literal ""../../gold/layout.cc"" " string_content ") , number_literal , (string_literal ""remove"" " string_content ") , identifier ))) ;) })) (expression_statement "DAT_0038f4b8 = DAT_0038f4b8 + 1;" (assignment_expression "DAT_0038f4b8 = DAT_0038f4b8 + 1" identifier = (binary_expression "DAT_0038f4b8 + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = (undefined4 *)param_1[3];" (assignment_expression "puVar10 = (undefined4 *)param_1[3]" identifier = (cast_expression "(undefined4 *)param_1[3]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[3]" identifier [ number_literal ]))) ;) (expression_statement "iVar6 = param_3 - puVar10[3];" (assignment_expression "iVar6 = param_3 - puVar10[3]" identifier = (binary_expression "param_3 - puVar10[3]" identifier - (subscript_expression "puVar10[3]" identifier [ number_literal ]))) ;) (if_statement "if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }" if (parenthesized_expression "((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0)" ( (binary_expression "(SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0" (parenthesized_expression "(SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2])))" ( (binary_expression "SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))" (call_expression "SBORROW4(param_3,puVar10[3])" identifier (argument_list "(param_3,puVar10[3])" ( identifier , (subscript_expression "puVar10[3]" identifier [ number_literal ]) ))) != (call_expression "SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))" identifier (argument_list "(iVar6,(uint)(param_2 < (uint)puVar10[2]))" ( identifier , (call_expression "(uint)(param_2 < (uint)puVar10[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < (uint)puVar10[2])" ( (binary_expression "param_2 < (uint)puVar10[2]" identifier < (cast_expression "(uint)puVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar10[2]" identifier [ number_literal ]))) ))) )))) )) != (binary_expression "(int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0" (cast_expression "(int)(iVar6 - (uint)(param_2 < (uint)puVar10[2]))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar6 - (uint)(param_2 < (uint)puVar10[2]))" ( (binary_expression "iVar6 - (uint)(param_2 < (uint)puVar10[2])" identifier - (call_expression "(uint)(param_2 < (uint)puVar10[2])" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < (uint)puVar10[2])" ( (binary_expression "param_2 < (uint)puVar10[2]" identifier < (cast_expression "(uint)puVar10[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar10[2]" identifier [ number_literal ]))) )))) ))) < number_literal)) )) (compound_statement "{\n      puVar10 = (undefined4 *)*param_1;\n    }" { (expression_statement "puVar10 = (undefined4 *)*param_1;" (assignment_expression "puVar10 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) })) (for_statement "for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }" for ( ; (binary_expression "puVar10 != param_1" identifier != identifier) ; (assignment_expression "puVar10 = (undefined4 *)*puVar10" identifier = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ) (compound_statement "{\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }" { (expression_statement "DAT_0038f4b4 = DAT_0038f4b4 + 1;" (assignment_expression "DAT_0038f4b4 = DAT_0038f4b4 + 1" identifier = (binary_expression "DAT_0038f4b4 + 1" identifier + number_literal)) ;) (expression_statement "iVar6 = puVar10[3];" (assignment_expression "iVar6 = puVar10[3]" identifier = (subscript_expression "puVar10[3]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = puVar10[2];" (assignment_expression "uVar1 = puVar10[2]" identifier = (subscript_expression "puVar10[2]" identifier [ number_literal ])) ;) (if_statement "if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }" if (parenthesized_expression "((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0)" ( (binary_expression "(SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0" (parenthesized_expression "(SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1)))" ( (binary_expression "SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))" (call_expression "SBORROW4(param_3,iVar6)" identifier (argument_list "(param_3,iVar6)" ( identifier , identifier ))) != (call_expression "SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))" identifier (argument_list "(param_3 - iVar6,(uint)(param_2 < uVar1))" ( (binary_expression "param_3 - iVar6" identifier - identifier) , (call_expression "(uint)(param_2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < uVar1)" ( (binary_expression "param_2 < uVar1" identifier < identifier) ))) )))) )) == (binary_expression "(int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0" (cast_expression "(int)((param_3 - iVar6) - (uint)(param_2 < uVar1))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_3 - iVar6) - (uint)(param_2 < uVar1))" ( (binary_expression "(param_3 - iVar6) - (uint)(param_2 < uVar1)" (parenthesized_expression "(param_3 - iVar6)" ( (binary_expression "param_3 - iVar6" identifier - identifier) )) - (call_expression "(uint)(param_2 < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 < uVar1)" ( (binary_expression "param_2 < uVar1" identifier < identifier) )))) ))) < number_literal)) )) (compound_statement "{\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }" { (expression_statement "iVar7 = puVar10[5];" (assignment_expression "iVar7 = puVar10[5]" identifier = (subscript_expression "puVar10[5]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = puVar10[4];" (assignment_expression "uVar2 = puVar10[4]" identifier = (subscript_expression "puVar10[4]" identifier [ number_literal ])) ;) (if_statement "if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }" if (parenthesized_expression "((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0)" ( (binary_expression "(SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0" (parenthesized_expression "(SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4)))" ( (binary_expression "SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))" (call_expression "SBORROW4(iVar7,param_5)" identifier (argument_list "(iVar7,param_5)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))" identifier (argument_list "(iVar7 - param_5,(uint)(uVar2 < param_4))" ( (binary_expression "iVar7 - param_5" identifier - identifier) , (call_expression "(uint)(uVar2 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < param_4)" ( (binary_expression "uVar2 < param_4" identifier < identifier) ))) )))) )) == (binary_expression "(int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0" (cast_expression "(int)((iVar7 - param_5) - (uint)(uVar2 < param_4))" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar7 - param_5) - (uint)(uVar2 < param_4))" ( (binary_expression "(iVar7 - param_5) - (uint)(uVar2 < param_4)" (parenthesized_expression "(iVar7 - param_5)" ( (binary_expression "iVar7 - param_5" identifier - identifier) )) - (call_expression "(uint)(uVar2 < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar2 < param_4)" ( (binary_expression "uVar2 < param_4" identifier < identifier) )))) ))) < number_literal)) )) (compound_statement "{\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }" { (expression_statement "iVar8 = param_5 + (uint)(0xfffffffc < param_4);" (assignment_expression "iVar8 = param_5 + (uint)(0xfffffffc < param_4)" identifier = (binary_expression "param_5 + (uint)(0xfffffffc < param_4)" identifier + (call_expression "(uint)(0xfffffffc < param_4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffc < param_4)" ( (binary_expression "0xfffffffc < param_4" number_literal < identifier) ))))) ;) (expression_statement "iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);" (assignment_expression "iVar9 = iVar6 + (uint)(0xfffffffc < uVar1)" identifier = (binary_expression "iVar6 + (uint)(0xfffffffc < uVar1)" identifier + (call_expression "(uint)(0xfffffffc < uVar1)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0xfffffffc < uVar1)" ( (binary_expression "0xfffffffc < uVar1" number_literal < identifier) ))))) ;) (expression_statement "uVar4 = (uint)(uVar1 + 3 < param_2);" (assignment_expression "uVar4 = (uint)(uVar1 + 3 < param_2)" identifier = (call_expression "(uint)(uVar1 + 3 < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar1 + 3 < param_2)" ( (binary_expression "uVar1 + 3 < param_2" (binary_expression "uVar1 + 3" identifier + number_literal) < identifier) )))) ;) (expression_statement "iVar5 = iVar9 - param_3;" (assignment_expression "iVar5 = iVar9 - param_3" identifier = (binary_expression "iVar9 - param_3" identifier - identifier)) ;) (if_statement "if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" if (parenthesized_expression "((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0)" ( (binary_expression "(SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0" (parenthesized_expression "(SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4))" ( (binary_expression "SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)" (call_expression "SBORROW4(iVar9,param_3)" identifier (argument_list "(iVar9,param_3)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar5,uVar4)" identifier (argument_list "(iVar5,uVar4)" ( identifier , identifier )))) )) == (binary_expression "(int)(iVar5 - uVar4) < 0" (cast_expression "(int)(iVar5 - uVar4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(iVar5 - uVar4)" ( (binary_expression "iVar5 - uVar4" identifier - identifier) ))) < number_literal)) )) (compound_statement "{\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }" { (expression_statement "uVar1 = (uint)(param_4 + 3 < uVar2);" (assignment_expression "uVar1 = (uint)(param_4 + 3 < uVar2)" identifier = (call_expression "(uint)(param_4 + 3 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + 3 < uVar2)" ( (binary_expression "param_4 + 3 < uVar2" (binary_expression "param_4 + 3" identifier + number_literal) < identifier) )))) ;) (if_statement "if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" if (parenthesized_expression "((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0)" ( (binary_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0" (parenthesized_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1))" ( (binary_expression "SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)" (call_expression "SBORROW4(iVar8,iVar7)" identifier (argument_list "(iVar8,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar8 - iVar7,uVar1)" identifier (argument_list "(iVar8 - iVar7,uVar1)" ( (binary_expression "iVar8 - iVar7" identifier - identifier) , identifier )))) )) == (binary_expression "(int)((iVar8 - iVar7) - uVar1) < 0" (cast_expression "(int)((iVar8 - iVar7) - uVar1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar8 - iVar7) - uVar1)" ( (binary_expression "(iVar8 - iVar7) - uVar1" (parenthesized_expression "(iVar8 - iVar7)" ( (binary_expression "iVar8 - iVar7" identifier - identifier) )) - identifier) ))) < number_literal)) )) (compound_statement "{\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }" { (expression_statement "puVar3 = (undefined4 *)*puVar10;" (assignment_expression "puVar3 = (undefined4 *)*puVar10" identifier = (cast_expression "(undefined4 *)*puVar10" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "param_1[2] = param_1[2] + -1;" (assignment_expression "param_1[2] = param_1[2] + -1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "param_1[2] + -1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "FUN_001e9f90(puVar10);" (call_expression "FUN_001e9f90(puVar10)" identifier (argument_list "(puVar10)" ( identifier ))) ;) (expression_statement "FUN_001e6db0(puVar10);" (call_expression "FUN_001e6db0(puVar10)" identifier (argument_list "(puVar10)" ( identifier ))) ;) (expression_statement "puVar10 = puVar3;" (assignment_expression "puVar10 = puVar3" identifier = identifier) ;) }) (else_clause "else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" else (compound_statement "{\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" { (expression_statement "puVar10[2] = param_4;" (assignment_expression "puVar10[2] = param_4" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = param_5;" (assignment_expression "puVar10[3] = param_5" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) }))) }) (else_clause "else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" else (compound_statement "{\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" { (expression_statement "uVar2 = (uint)(param_4 + 3 < uVar2);" (assignment_expression "uVar2 = (uint)(param_4 + 3 < uVar2)" identifier = (call_expression "(uint)(param_4 + 3 < uVar2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_4 + 3 < uVar2)" ( (binary_expression "param_4 + 3 < uVar2" (binary_expression "param_4 + 3" identifier + number_literal) < identifier) )))) ;) (if_statement "if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" if (parenthesized_expression "((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0)" ( (binary_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0" (parenthesized_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2))" ( (binary_expression "SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)" (call_expression "SBORROW4(iVar8,iVar7)" identifier (argument_list "(iVar8,iVar7)" ( identifier , identifier ))) != (call_expression "SBORROW4(iVar8 - iVar7,uVar2)" identifier (argument_list "(iVar8 - iVar7,uVar2)" ( (binary_expression "iVar8 - iVar7" identifier - identifier) , identifier )))) )) == (binary_expression "(int)((iVar8 - iVar7) - uVar2) < 0" (cast_expression "(int)((iVar8 - iVar7) - uVar2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((iVar8 - iVar7) - uVar2)" ( (binary_expression "(iVar8 - iVar7) - uVar2" (parenthesized_expression "(iVar8 - iVar7)" ( (binary_expression "iVar8 - iVar7" identifier - identifier) )) - identifier) ))) < number_literal)) )) (compound_statement "{\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }" { (expression_statement "puVar10[4] = param_2;" (assignment_expression "puVar10[4] = param_2" (subscript_expression "puVar10[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[5] = param_3;" (assignment_expression "puVar10[5] = param_3" (subscript_expression "puVar10[5]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" else (compound_statement "{\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" { (expression_statement "puVar10[2] = param_4;" (assignment_expression "puVar10[2] = param_4" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar10[3] = param_5;" (assignment_expression "puVar10[3] = param_5" (subscript_expression "puVar10[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = FUN_001e5200(0x18);" (assignment_expression "iVar7 = FUN_001e5200(0x18)" identifier = (call_expression "FUN_001e5200(0x18)" identifier (argument_list "(0x18)" ( number_literal )))) ;) (expression_statement "*(int *)(iVar7 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar7 + 8) = uVar1;" (assignment_expression "*(uint *)(iVar7 + 8) = uVar1" (pointer_expression "*(uint *)(iVar7 + 8)" * (cast_expression "(uint *)(iVar7 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(iVar7 + 0x10) = param_2;" (assignment_expression "*(uint *)(iVar7 + 0x10) = param_2" (pointer_expression "*(uint *)(iVar7 + 0x10)" * (cast_expression "(uint *)(iVar7 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar7 + 0x14) = param_3;" (assignment_expression "*(int *)(iVar7 + 0x14) = param_3" (pointer_expression "*(int *)(iVar7 + 0x14)" * (cast_expression "(int *)(iVar7 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x14)" ( (binary_expression "iVar7 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_001e9f70(iVar7,puVar10);" (call_expression "FUN_001e9f70(iVar7,puVar10)" identifier (argument_list "(iVar7,puVar10)" ( identifier , identifier ))) ;) (expression_statement "DAT_0038f4bc = DAT_0038f4bc + 1;" (assignment_expression "DAT_0038f4bc = DAT_0038f4bc + 1" identifier = (binary_expression "DAT_0038f4bc + 1" identifier + number_literal)) ;) (expression_statement "param_1[2] = param_1[2] + 1;" (assignment_expression "param_1[2] = param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) = (binary_expression "param_1[2] + 1" (subscript_expression "param_1[2]" identifier [ number_literal ]) + number_literal)) ;) }))) }))) (expression_statement "param_1[3] = puVar10;" (assignment_expression "param_1[3] = puVar10" (subscript_expression "param_1[3]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })) })) })) (if_statement "if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }" if (parenthesized_expression "((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0))" ( (binary_expression "(DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)" (parenthesized_expression "(DAT_0038f378[2] != 0)" ( (binary_expression "DAT_0038f378[2] != 0" (subscript_expression "DAT_0038f378[2]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)" ( (binary_expression "(*(byte *)(DAT_0038f378 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(DAT_0038f378 + 5) & 0x10)" ( (binary_expression "*(byte *)(DAT_0038f378 + 5) & 0x10" (pointer_expression "*(byte *)(DAT_0038f378 + 5)" * (cast_expression "(byte *)(DAT_0038f378 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_0038f378 + 5)" ( (binary_expression "DAT_0038f378 + 5" identifier + number_literal) )))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }" { (expression_statement "FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);" (call_expression "FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4)" identifier (argument_list "(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4)" ( (pointer_expression "*DAT_0038f378" * identifier) , (string_literal ""Free_list::remove(%d,%d) not found"" " string_content ") , identifier , identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (binary_expression IDENT != IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) )))) )) == (binary_expression IDENT < LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) ))) != (call_expression IDENT (argument_list ( IDENT , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )))) )) != (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )))) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (for_statement for ( ; (binary_expression IDENT != IDENT) ; (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) )))) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( IDENT , IDENT )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , IDENT )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - IDENT) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) , IDENT )))) )) == (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) - IDENT) ))) < LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }))) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (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 (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (string_literal " string_content ") , IDENT , IDENT ))) ;) (return_statement return ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)\n\n{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  \n  if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00096350(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)" (identifier "FUN_00096350") (parameter_list "(undefined4 *param_1,uint param_2,int param_3,uint param_4,int param_5)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "uint param_4" (type_identifier "uint") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) () ")"))) (compound_statement "{\n  uint uVar1;\n  uint uVar2;\n  undefined4 *puVar3;\n  uint uVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  undefined4 *puVar10;\n  \n  if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 *puVar3;" (type_identifier "undefined4") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (if_statement "if (param_5 != param_3 || param_2 != param_4) {\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(param_5 != param_3 || param_2 != param_4)" (( "(") (binary_expression "param_5 != param_3 || param_2 != param_4" (binary_expression "param_5 != param_3" (identifier "param_5") (!= "!=") (identifier "param_3")) (|| "||") (binary_expression "param_2 != param_4" (identifier "param_2") (!= "!=") (identifier "param_4"))) () ")")) (compound_statement "{\n    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);\n    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }\n    DAT_0038f4b8 = DAT_0038f4b8 + 1;\n    puVar10 = (undefined4 *)param_1[3];\n    iVar6 = param_3 - puVar10[3];\n    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }\n    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }\n    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }\n  }" ({ "{") (expression_statement "iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);" (assignment_expression "iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4)" (identifier "iVar6") (= "=") (binary_expression "(param_3 - param_5) - (uint)(param_2 < param_4)" (parenthesized_expression "(param_3 - param_5)" (( "(") (binary_expression "param_3 - param_5" (identifier "param_3") (- "-") (identifier "param_5")) () ")")) (- "-") (call_expression "(uint)(param_2 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 < param_4)" (( "(") (binary_expression "param_2 < param_4" (identifier "param_2") (< "<") (identifier "param_4")) () ")"))))) (; ";")) (if_statement "if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0) {\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }" (if "if") (parenthesized_expression "((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0)" (( "(") (binary_expression "(SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==\n        iVar6 < 0" (parenthesized_expression "(SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4)))" (( "(") (binary_expression "SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))" (call_expression "SBORROW4(param_3,param_5)" (identifier "SBORROW4") (argument_list "(param_3,param_5)" (( "(") (identifier "param_3") (, ",") (identifier "param_5") () ")"))) (!= "!=") (call_expression "SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))" (identifier "SBORROW4") (argument_list "(param_3 - param_5,(uint)(param_2 < param_4))" (( "(") (binary_expression "param_3 - param_5" (identifier "param_3") (- "-") (identifier "param_5")) (, ",") (call_expression "(uint)(param_2 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 < param_4)" (( "(") (binary_expression "param_2 < param_4" (identifier "param_2") (< "<") (identifier "param_4")) () ")"))) () ")")))) () ")")) (== "==") (binary_expression "iVar6 < 0" (identifier "iVar6") (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n                    \n      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);\n    }" ({ "{") (expression_statement "FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);" (call_expression "FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6)" (identifier "FUN_00069d00") (argument_list "("../../gold/layout.cc",0x6d,"remove",iVar6)" (( "(") (string_literal ""../../gold/layout.cc"" (" """) (string_content "../../gold/layout.cc") (" """)) (, ",") (number_literal "0x6d") (, ",") (string_literal ""remove"" (" """) (string_content "remove") (" """)) (, ",") (identifier "iVar6") () ")"))) (; ";")) (} "}"))) (expression_statement "DAT_0038f4b8 = DAT_0038f4b8 + 1;" (assignment_expression "DAT_0038f4b8 = DAT_0038f4b8 + 1" (identifier "DAT_0038f4b8") (= "=") (binary_expression "DAT_0038f4b8 + 1" (identifier "DAT_0038f4b8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)param_1[3];" (assignment_expression "puVar10 = (undefined4 *)param_1[3]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)param_1[3]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "iVar6 = param_3 - puVar10[3];" (assignment_expression "iVar6 = param_3 - puVar10[3]" (identifier "iVar6") (= "=") (binary_expression "param_3 - puVar10[3]" (identifier "param_3") (- "-") (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {\n      puVar10 = (undefined4 *)*param_1;\n    }" (if "if") (parenthesized_expression "((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0)" (( "(") (binary_expression "(SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=\n        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0" (parenthesized_expression "(SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2])))" (( "(") (binary_expression "SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))" (call_expression "SBORROW4(param_3,puVar10[3])" (identifier "SBORROW4") (argument_list "(param_3,puVar10[3])" (( "(") (identifier "param_3") (, ",") (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) () ")"))) (!= "!=") (call_expression "SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))" (identifier "SBORROW4") (argument_list "(iVar6,(uint)(param_2 < (uint)puVar10[2]))" (( "(") (identifier "iVar6") (, ",") (call_expression "(uint)(param_2 < (uint)puVar10[2])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 < (uint)puVar10[2])" (( "(") (binary_expression "param_2 < (uint)puVar10[2]" (identifier "param_2") (< "<") (cast_expression "(uint)puVar10[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")))) () ")"))) () ")")))) () ")")) (!= "!=") (binary_expression "(int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0" (cast_expression "(int)(iVar6 - (uint)(param_2 < (uint)puVar10[2]))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar6 - (uint)(param_2 < (uint)puVar10[2]))" (( "(") (binary_expression "iVar6 - (uint)(param_2 < (uint)puVar10[2])" (identifier "iVar6") (- "-") (call_expression "(uint)(param_2 < (uint)puVar10[2])" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 < (uint)puVar10[2])" (( "(") (binary_expression "param_2 < (uint)puVar10[2]" (identifier "param_2") (< "<") (cast_expression "(uint)puVar10[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")))) () ")")))) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n      puVar10 = (undefined4 *)*param_1;\n    }" ({ "{") (expression_statement "puVar10 = (undefined4 *)*param_1;" (assignment_expression "puVar10 = (undefined4 *)*param_1" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (} "}"))) (for_statement "for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "puVar10 != param_1" (identifier "puVar10") (!= "!=") (identifier "param_1")) (; ";") (assignment_expression "puVar10 = (undefined4 *)*puVar10" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)*puVar10" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar10" (* "*") (identifier "puVar10")))) () ")") (compound_statement "{\n      DAT_0038f4b4 = DAT_0038f4b4 + 1;\n      iVar6 = puVar10[3];\n      uVar1 = puVar10[2];\n      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }\n    }" ({ "{") (expression_statement "DAT_0038f4b4 = DAT_0038f4b4 + 1;" (assignment_expression "DAT_0038f4b4 = DAT_0038f4b4 + 1" (identifier "DAT_0038f4b4") (= "=") (binary_expression "DAT_0038f4b4 + 1" (identifier "DAT_0038f4b4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar6 = puVar10[3];" (assignment_expression "iVar6 = puVar10[3]" (identifier "iVar6") (= "=") (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar1 = puVar10[2];" (assignment_expression "uVar1 = puVar10[2]" (identifier "uVar1") (= "=") (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }" (if "if") (parenthesized_expression "((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0)" (( "(") (binary_expression "(SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==\n          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0" (parenthesized_expression "(SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1)))" (( "(") (binary_expression "SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))" (call_expression "SBORROW4(param_3,iVar6)" (identifier "SBORROW4") (argument_list "(param_3,iVar6)" (( "(") (identifier "param_3") (, ",") (identifier "iVar6") () ")"))) (!= "!=") (call_expression "SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))" (identifier "SBORROW4") (argument_list "(param_3 - iVar6,(uint)(param_2 < uVar1))" (( "(") (binary_expression "param_3 - iVar6" (identifier "param_3") (- "-") (identifier "iVar6")) (, ",") (call_expression "(uint)(param_2 < uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 < uVar1)" (( "(") (binary_expression "param_2 < uVar1" (identifier "param_2") (< "<") (identifier "uVar1")) () ")"))) () ")")))) () ")")) (== "==") (binary_expression "(int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0" (cast_expression "(int)((param_3 - iVar6) - (uint)(param_2 < uVar1))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((param_3 - iVar6) - (uint)(param_2 < uVar1))" (( "(") (binary_expression "(param_3 - iVar6) - (uint)(param_2 < uVar1)" (parenthesized_expression "(param_3 - iVar6)" (( "(") (binary_expression "param_3 - iVar6" (identifier "param_3") (- "-") (identifier "iVar6")) () ")")) (- "-") (call_expression "(uint)(param_2 < uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 < uVar1)" (( "(") (binary_expression "param_2 < uVar1" (identifier "param_2") (< "<") (identifier "uVar1")) () ")")))) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n        iVar7 = puVar10[5];\n        uVar2 = puVar10[4];\n        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }\n      }" ({ "{") (expression_statement "iVar7 = puVar10[5];" (assignment_expression "iVar7 = puVar10[5]" (identifier "iVar7") (= "=") (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar2 = puVar10[4];" (assignment_expression "uVar2 = puVar10[4]" (identifier "uVar2") (= "=") (subscript_expression "puVar10[4]" (identifier "puVar10") ([ "[") (number_literal "4") (] "]"))) (; ";")) (if_statement "if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }" (if "if") (parenthesized_expression "((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0)" (( "(") (binary_expression "(SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==\n            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0" (parenthesized_expression "(SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4)))" (( "(") (binary_expression "SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))" (call_expression "SBORROW4(iVar7,param_5)" (identifier "SBORROW4") (argument_list "(iVar7,param_5)" (( "(") (identifier "iVar7") (, ",") (identifier "param_5") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))" (identifier "SBORROW4") (argument_list "(iVar7 - param_5,(uint)(uVar2 < param_4))" (( "(") (binary_expression "iVar7 - param_5" (identifier "iVar7") (- "-") (identifier "param_5")) (, ",") (call_expression "(uint)(uVar2 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < param_4)" (( "(") (binary_expression "uVar2 < param_4" (identifier "uVar2") (< "<") (identifier "param_4")) () ")"))) () ")")))) () ")")) (== "==") (binary_expression "(int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0" (cast_expression "(int)((iVar7 - param_5) - (uint)(uVar2 < param_4))" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((iVar7 - param_5) - (uint)(uVar2 < param_4))" (( "(") (binary_expression "(iVar7 - param_5) - (uint)(uVar2 < param_4)" (parenthesized_expression "(iVar7 - param_5)" (( "(") (binary_expression "iVar7 - param_5" (identifier "iVar7") (- "-") (identifier "param_5")) () ")")) (- "-") (call_expression "(uint)(uVar2 < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar2 < param_4)" (( "(") (binary_expression "uVar2 < param_4" (identifier "uVar2") (< "<") (identifier "param_4")) () ")")))) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n          iVar8 = param_5 + (uint)(0xfffffffc < param_4);\n          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);\n          uVar4 = (uint)(uVar1 + 3 < param_2);\n          iVar5 = iVar9 - param_3;\n          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }\n          param_1[3] = puVar10;\n          return;\n        }" ({ "{") (expression_statement "iVar8 = param_5 + (uint)(0xfffffffc < param_4);" (assignment_expression "iVar8 = param_5 + (uint)(0xfffffffc < param_4)" (identifier "iVar8") (= "=") (binary_expression "param_5 + (uint)(0xfffffffc < param_4)" (identifier "param_5") (+ "+") (call_expression "(uint)(0xfffffffc < param_4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffc < param_4)" (( "(") (binary_expression "0xfffffffc < param_4" (number_literal "0xfffffffc") (< "<") (identifier "param_4")) () ")"))))) (; ";")) (expression_statement "iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);" (assignment_expression "iVar9 = iVar6 + (uint)(0xfffffffc < uVar1)" (identifier "iVar9") (= "=") (binary_expression "iVar6 + (uint)(0xfffffffc < uVar1)" (identifier "iVar6") (+ "+") (call_expression "(uint)(0xfffffffc < uVar1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0xfffffffc < uVar1)" (( "(") (binary_expression "0xfffffffc < uVar1" (number_literal "0xfffffffc") (< "<") (identifier "uVar1")) () ")"))))) (; ";")) (expression_statement "uVar4 = (uint)(uVar1 + 3 < param_2);" (assignment_expression "uVar4 = (uint)(uVar1 + 3 < param_2)" (identifier "uVar4") (= "=") (call_expression "(uint)(uVar1 + 3 < param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar1 + 3 < param_2)" (( "(") (binary_expression "uVar1 + 3 < param_2" (binary_expression "uVar1 + 3" (identifier "uVar1") (+ "+") (number_literal "3")) (< "<") (identifier "param_2")) () ")")))) (; ";")) (expression_statement "iVar5 = iVar9 - param_3;" (assignment_expression "iVar5 = iVar9 - param_3" (identifier "iVar5") (= "=") (binary_expression "iVar9 - param_3" (identifier "iVar9") (- "-") (identifier "param_3"))) (; ";")) (if_statement "if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }\n          else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" (if "if") (parenthesized_expression "((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0)" (( "(") (binary_expression "(SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0" (parenthesized_expression "(SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4))" (( "(") (binary_expression "SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)" (call_expression "SBORROW4(iVar9,param_3)" (identifier "SBORROW4") (argument_list "(iVar9,param_3)" (( "(") (identifier "iVar9") (, ",") (identifier "param_3") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar5,uVar4)" (identifier "SBORROW4") (argument_list "(iVar5,uVar4)" (( "(") (identifier "iVar5") (, ",") (identifier "uVar4") () ")")))) () ")")) (== "==") (binary_expression "(int)(iVar5 - uVar4) < 0" (cast_expression "(int)(iVar5 - uVar4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(iVar5 - uVar4)" (( "(") (binary_expression "iVar5 - uVar4" (identifier "iVar5") (- "-") (identifier "uVar4")) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n            uVar1 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }\n          }" ({ "{") (expression_statement "uVar1 = (uint)(param_4 + 3 < uVar2);" (assignment_expression "uVar1 = (uint)(param_4 + 3 < uVar2)" (identifier "uVar1") (= "=") (call_expression "(uint)(param_4 + 3 < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 + 3 < uVar2)" (( "(") (binary_expression "param_4 + 3 < uVar2" (binary_expression "param_4 + 3" (identifier "param_4") (+ "+") (number_literal "3")) (< "<") (identifier "uVar2")) () ")")))) (; ";")) (if_statement "if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0) {\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" (if "if") (parenthesized_expression "((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0)" (( "(") (binary_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==\n                (int)((iVar8 - iVar7) - uVar1) < 0" (parenthesized_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1))" (( "(") (binary_expression "SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)" (call_expression "SBORROW4(iVar8,iVar7)" (identifier "SBORROW4") (argument_list "(iVar8,iVar7)" (( "(") (identifier "iVar8") (, ",") (identifier "iVar7") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar8 - iVar7,uVar1)" (identifier "SBORROW4") (argument_list "(iVar8 - iVar7,uVar1)" (( "(") (binary_expression "iVar8 - iVar7" (identifier "iVar8") (- "-") (identifier "iVar7")) (, ",") (identifier "uVar1") () ")")))) () ")")) (== "==") (binary_expression "(int)((iVar8 - iVar7) - uVar1) < 0" (cast_expression "(int)((iVar8 - iVar7) - uVar1)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((iVar8 - iVar7) - uVar1)" (( "(") (binary_expression "(iVar8 - iVar7) - uVar1" (parenthesized_expression "(iVar8 - iVar7)" (( "(") (binary_expression "iVar8 - iVar7" (identifier "iVar8") (- "-") (identifier "iVar7")) () ")")) (- "-") (identifier "uVar1")) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n              puVar3 = (undefined4 *)*puVar10;\n              param_1[2] = param_1[2] + -1;\n              FUN_001e9f90(puVar10);\n              FUN_001e6db0(puVar10);\n              puVar10 = puVar3;\n            }" ({ "{") (expression_statement "puVar3 = (undefined4 *)*puVar10;" (assignment_expression "puVar3 = (undefined4 *)*puVar10" (identifier "puVar3") (= "=") (cast_expression "(undefined4 *)*puVar10" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar10" (* "*") (identifier "puVar10")))) (; ";")) (expression_statement "param_1[2] = param_1[2] + -1;" (assignment_expression "param_1[2] = param_1[2] + -1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_1[2] + -1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "FUN_001e9f90(puVar10);" (call_expression "FUN_001e9f90(puVar10)" (identifier "FUN_001e9f90") (argument_list "(puVar10)" (( "(") (identifier "puVar10") () ")"))) (; ";")) (expression_statement "FUN_001e6db0(puVar10);" (call_expression "FUN_001e6db0(puVar10)" (identifier "FUN_001e6db0") (argument_list "(puVar10)" (( "(") (identifier "puVar10") () ")"))) (; ";")) (expression_statement "puVar10 = puVar3;" (assignment_expression "puVar10 = puVar3" (identifier "puVar10") (= "=") (identifier "puVar3")) (; ";")) (} "}")) (else_clause "else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" (else "else") (compound_statement "{\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n            }" ({ "{") (expression_statement "puVar10[2] = param_4;" (assignment_expression "puVar10[2] = param_4" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar10[3] = param_5;" (assignment_expression "puVar10[3] = param_5" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "param_5")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" (else "else") (compound_statement "{\n            uVar2 = (uint)(param_4 + 3 < uVar2);\n            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }\n          }" ({ "{") (expression_statement "uVar2 = (uint)(param_4 + 3 < uVar2);" (assignment_expression "uVar2 = (uint)(param_4 + 3 < uVar2)" (identifier "uVar2") (= "=") (call_expression "(uint)(param_4 + 3 < uVar2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_4 + 3 < uVar2)" (( "(") (binary_expression "param_4 + 3 < uVar2" (binary_expression "param_4 + 3" (identifier "param_4") (+ "+") (number_literal "3")) (< "<") (identifier "uVar2")) () ")")))) (; ";")) (if_statement "if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0) {\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }\n            else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" (if "if") (parenthesized_expression "((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0)" (( "(") (binary_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==\n                (int)((iVar8 - iVar7) - uVar2) < 0" (parenthesized_expression "(SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2))" (( "(") (binary_expression "SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)" (call_expression "SBORROW4(iVar8,iVar7)" (identifier "SBORROW4") (argument_list "(iVar8,iVar7)" (( "(") (identifier "iVar8") (, ",") (identifier "iVar7") () ")"))) (!= "!=") (call_expression "SBORROW4(iVar8 - iVar7,uVar2)" (identifier "SBORROW4") (argument_list "(iVar8 - iVar7,uVar2)" (( "(") (binary_expression "iVar8 - iVar7" (identifier "iVar8") (- "-") (identifier "iVar7")) (, ",") (identifier "uVar2") () ")")))) () ")")) (== "==") (binary_expression "(int)((iVar8 - iVar7) - uVar2) < 0" (cast_expression "(int)((iVar8 - iVar7) - uVar2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((iVar8 - iVar7) - uVar2)" (( "(") (binary_expression "(iVar8 - iVar7) - uVar2" (parenthesized_expression "(iVar8 - iVar7)" (( "(") (binary_expression "iVar8 - iVar7" (identifier "iVar8") (- "-") (identifier "iVar7")) () ")")) (- "-") (identifier "uVar2")) () ")"))) (< "<") (number_literal "0"))) () ")")) (compound_statement "{\n              puVar10[4] = param_2;\n              puVar10[5] = param_3;\n            }" ({ "{") (expression_statement "puVar10[4] = param_2;" (assignment_expression "puVar10[4] = param_2" (subscript_expression "puVar10[4]" (identifier "puVar10") ([ "[") (number_literal "4") (] "]")) (= "=") (identifier "param_2")) (; ";")) (expression_statement "puVar10[5] = param_3;" (assignment_expression "puVar10[5] = param_3" (subscript_expression "puVar10[5]" (identifier "puVar10") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "param_3")) (; ";")) (} "}")) (else_clause "else {\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" (else "else") (compound_statement "{\n              puVar10[2] = param_4;\n              puVar10[3] = param_5;\n              iVar7 = FUN_001e5200(0x18);\n              *(int *)(iVar7 + 0xc) = iVar6;\n              *(uint *)(iVar7 + 8) = uVar1;\n              *(uint *)(iVar7 + 0x10) = param_2;\n              *(int *)(iVar7 + 0x14) = param_3;\n              FUN_001e9f70(iVar7,puVar10);\n              DAT_0038f4bc = DAT_0038f4bc + 1;\n              param_1[2] = param_1[2] + 1;\n            }" ({ "{") (expression_statement "puVar10[2] = param_4;" (assignment_expression "puVar10[2] = param_4" (subscript_expression "puVar10[2]" (identifier "puVar10") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "param_4")) (; ";")) (expression_statement "puVar10[3] = param_5;" (assignment_expression "puVar10[3] = param_5" (subscript_expression "puVar10[3]" (identifier "puVar10") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "param_5")) (; ";")) (expression_statement "iVar7 = FUN_001e5200(0x18);" (assignment_expression "iVar7 = FUN_001e5200(0x18)" (identifier "iVar7") (= "=") (call_expression "FUN_001e5200(0x18)" (identifier "FUN_001e5200") (argument_list "(0x18)" (( "(") (number_literal "0x18") () ")")))) (; ";")) (expression_statement "*(int *)(iVar7 + 0xc) = iVar6;" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar6" (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "*(uint *)(iVar7 + 8) = uVar1;" (assignment_expression "*(uint *)(iVar7 + 8) = uVar1" (pointer_expression "*(uint *)(iVar7 + 8)" (* "*") (cast_expression "(uint *)(iVar7 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(uint *)(iVar7 + 0x10) = param_2;" (assignment_expression "*(uint *)(iVar7 + 0x10) = param_2" (pointer_expression "*(uint *)(iVar7 + 0x10)" (* "*") (cast_expression "(uint *)(iVar7 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int *)(iVar7 + 0x14) = param_3;" (assignment_expression "*(int *)(iVar7 + 0x14) = param_3" (pointer_expression "*(int *)(iVar7 + 0x14)" (* "*") (cast_expression "(int *)(iVar7 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x14)" (( "(") (binary_expression "iVar7 + 0x14" (identifier "iVar7") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "FUN_001e9f70(iVar7,puVar10);" (call_expression "FUN_001e9f70(iVar7,puVar10)" (identifier "FUN_001e9f70") (argument_list "(iVar7,puVar10)" (( "(") (identifier "iVar7") (, ",") (identifier "puVar10") () ")"))) (; ";")) (expression_statement "DAT_0038f4bc = DAT_0038f4bc + 1;" (assignment_expression "DAT_0038f4bc = DAT_0038f4bc + 1" (identifier "DAT_0038f4bc") (= "=") (binary_expression "DAT_0038f4bc + 1" (identifier "DAT_0038f4bc") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[2] = param_1[2] + 1;" (assignment_expression "param_1[2] = param_1[2] + 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "param_1[2] + 1" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "param_1[3] = puVar10;" (assignment_expression "param_1[3] = puVar10" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "puVar10")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }" (if "if") (parenthesized_expression "((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0))" (( "(") (binary_expression "(DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)" (parenthesized_expression "(DAT_0038f378[2] != 0)" (( "(") (binary_expression "DAT_0038f378[2] != 0" (subscript_expression "DAT_0038f378[2]" (identifier "DAT_0038f378") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(DAT_0038f378 + 5) & 0x10) != 0" (parenthesized_expression "(*(byte *)(DAT_0038f378 + 5) & 0x10)" (( "(") (binary_expression "*(byte *)(DAT_0038f378 + 5) & 0x10" (pointer_expression "*(byte *)(DAT_0038f378 + 5)" (* "*") (cast_expression "(byte *)(DAT_0038f378 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_0038f378 + 5)" (( "(") (binary_expression "DAT_0038f378 + 5" (identifier "DAT_0038f378") (+ "+") (number_literal "5")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);\n      return;\n    }" ({ "{") (expression_statement "FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);" (call_expression "FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4)" (identifier "FUN_000653f0") (argument_list "(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4)" (( "(") (pointer_expression "*DAT_0038f378" (* "*") (identifier "DAT_0038f378")) (, ",") (string_literal ""Free_list::remove(%d,%d) not found"" (" """) (string_content "Free_list::remove(%d,%d) not found") (" """)) (, ",") (identifier "param_2") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Type propagation algorithm not settling */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void remove(Free_list * this, off_t start, off_t end) */

int __thiscall var_8::type_1::function_1(type_1 *this,char *var_4)

{
  size_t *psVar1;
  type_2 *p_Var2;
  type_2 *var_14;
  char *var_15;
  type_1 *pFVar5;
  type_3 var_12;
  int var_11;
  int var_16;
  type_4 *pPVar9;
  type_2 *this_00;
  int var_17;
  int iVar11;
  type_1 *this_01;
  type_2 *var_2;
  char *var_5;
  type_2 *var_1;
  
  pPVar9 = (type_4 *)((type_3)var_4 ^ (type_3)var_5);
  if (var_1 != var_2 ||
      (type_4 *)((type_3)var_4 ^ (type_3)var_5) != (type_4 *)0x0) {
    if ((var_3((int)var_2,(int)var_1) !=
        var_3((int)var_2 - (int)var_1,
                 (type_3)(var_4 < var_5))) ==
        (int)(((int)var_2 - (int)var_1) -
             (type_3)(var_4 < var_5)) < 0) {
                    /* WARNING: Subroutine does not return */
      var_6("../../gold/layout.cc",0x6d,"remove");
    }
    var_7 = var_7 + 1;
    this_01 = (type_1 *)(this->last_remove_)._M_node;
    var_12 = (type_3)(var_4 <
                  (char *)(this_01->list_).
                          super__List_base<var_8::type_1::var_9,_std::allocator<var_8::type_1::var_9>var_10>
                          ._M_impl._M_node._M_size);
    var_11 = (int)var_2 - (int)(this_01->last_remove_)._M_node;
    if ((var_3((int)var_2,(int)(this_01->last_remove_)._M_node) !=
        var_3(var_11,var_12)) != (int)(var_11 - var_12) < 0) {
      this_01 = (type_1 *)
                (this->list_).
                super__List_base<var_8::type_1::var_9,_std::allocator<var_8::Free_list::var_9>var_10>
                ._M_impl._M_node.super__List_node_base._M_next;
    }
    for (; this_01 != this;
        this_01 = (type_1 *)
                  (this_01->list_).
                  super__List_base<var_8::type_1::var_9,_std::allocator<var_8::type_1::var_9>var_10>
                  ._M_impl._M_node.super__List_node_base._M_next) {
      num_remove_visits = num_remove_visits + 1;
      p_Var2 = (this_01->last_remove_)._M_node;
      var_14 = (type_2 *)
               (this_01->list_).
               super__List_base<var_8::type_1::var_9,_std::allocator<var_8::type_1::var_9>var_10>
               ._M_impl._M_node._M_size;
      var_13 ((var_3((int)var_2,(int)p_Var2) !=
          var_3((int)var_2 - (int)p_Var2,(type_3)(var_4 < var_14))) ==
          (int)(((int)var_2 - (int)p_Var2) - (type_3)(var_4 < var_14)) < 0) {
        var_11 = (int)this_01->length_;
        var_15 = *(char **)&this_01->extend_;
        if ((var_3(var_11,(int)var_1) !=
            var_3(var_11 - (int)var_1,(type_3)(var_15 < var_5))) ==
            (int)((var_11 - (int)var_1) - (type_3)(var_15 < var_5)) < 0) {
          var_17 = (int)&var_1->_M_next + (type_3)((char *)0xfffffffc < var_5)
          ;
          iVar11 = (int)&p_Var2->_M_next + (type_3)((type_2 *)0xfffffffc < var_14);
          var_12 = (type_3)((char *)((int)&var_14->_M_next + 3) < var_4);
          var_16 = iVar11 - (int)var_2;
          if ((var_3(iVar11,(int)var_2) != var_3(var_16,var_12)) ==
              (int)(var_16 - var_12) < 0) {
            var_12 = (type_3)(var_5 + 3 < var_15);
            if ((var_3(var_17,var_11) != var_3(var_17 - var_11,var_12)) ==
                (int)((var_17 - var_11) - var_12) < 0) {
              pFVar5 = (type_1 *)
                       (this_01->list_).
                       super__List_base<var_8::type_1::var_9,_std::allocator<var_8::type_1::var_9>var_10>
                       ._M_impl._M_node.super__List_node_base._M_next;
              psVar1 = &(this->list_).
                        super__List_base<var_8::Free_list::var_9,_std::allocator<var_8::Free_list::var_9>var_10>
                        ._M_impl._M_node._M_size;
              *psVar1 = *psVar1 - 1;
              std::__detail::_List_node_base::var_18((type_2 *)this_01);
              var_19(this_01);
              this_01 = pFVar5;
            }
            else {
              (this_01->list_).
              super__List_base<var_8::Free_list::var_9,_std::allocator<var_8::Free_list::var_9>var_10>
              ._M_impl._M_node._M_size = (size_t)var_5;
              (this_01->last_remove_)._M_node = var_1;
            }
          }
          type_5 {
            var_12 = (type_3)(var_5 + 3 < var_15);
            if ((var_3(var_17,var_11) != var_3(var_17 - var_11,var_12)) ==
                (int)((var_17 - var_11) - var_12) < 0) {
              *(char **)&this_01->extend_ = var_4;
              *(type_2 **)&this_01->length_ = var_2;
            }
            else {
              (this_01->list_).
              super__List_base<var_8::Free_list::var_9,_std::allocator<var_8::Free_list::var_9>var_10>
              ._M_impl._M_node._M_size = (size_t)var_5;
              (this_01->last_remove_)._M_node = var_1;
              this_00 = (type_2 *)var_20(0x18);
              this_00[1]._M_prev = p_Var2;
              this_00[1]._M_next = var_14;
              this_00[2]._M_next = (type_2 *)var_4;
              this_00[2]._M_prev = var_2;
              std::__detail::_List_node_base::var_21(this_00,(type_2 *)this_01);
              var_22 = var_22 + 1;
              psVar1 = &(this->list_).
                        super__List_base<var_8::Free_list::var_9,_std::allocator<var_8::Free_list::var_9>var_10>
                        ._M_impl._M_node._M_size;
              *psVar1 = *psVar1 + 1;
            }
          }
          (this->last_remove_)._M_node = (type_2 *)this_01;
          return (int)this;
        }
      }
    }
    pPVar9 = parameters;
    if ((parameters->options_ != (type_6 *)0x0) && ((parameters->debug_ & 0x10) != 0)) {
      Errors::var_23(parameters->errors_,"Free_list::remove(%d,%d) not found",var_4);
      return (int)pPVar9;
    }
  }
  return (int)pPVar9;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

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

{
  uint uVar1;
  uint uVar2;
  undefined4 *puVar3;
  uint uVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  undefined4 *puVar10;
  
  if (param_5 != param_3 || param_2 != param_4) {
    iVar6 = (param_3 - param_5) - (uint)(param_2 < param_4);
    if ((SBORROW4(param_3,param_5) != SBORROW4(param_3 - param_5,(uint)(param_2 < param_4))) ==
        iVar6 < 0) {
                    /* WARNING: Subroutine does not return */
      FUN_00069d00("../../gold/layout.cc",0x6d,"remove",iVar6);
    }
    DAT_0038f4b8 = DAT_0038f4b8 + 1;
    puVar10 = (undefined4 *)param_1[3];
    iVar6 = param_3 - puVar10[3];
    if ((SBORROW4(param_3,puVar10[3]) != SBORROW4(iVar6,(uint)(param_2 < (uint)puVar10[2]))) !=
        (int)(iVar6 - (uint)(param_2 < (uint)puVar10[2])) < 0) {
      puVar10 = (undefined4 *)*param_1;
    }
    for (; puVar10 != param_1; puVar10 = (undefined4 *)*puVar10) {
      DAT_0038f4b4 = DAT_0038f4b4 + 1;
      iVar6 = puVar10[3];
      uVar1 = puVar10[2];
      if ((SBORROW4(param_3,iVar6) != SBORROW4(param_3 - iVar6,(uint)(param_2 < uVar1))) ==
          (int)((param_3 - iVar6) - (uint)(param_2 < uVar1)) < 0) {
        iVar7 = puVar10[5];
        uVar2 = puVar10[4];
        if ((SBORROW4(iVar7,param_5) != SBORROW4(iVar7 - param_5,(uint)(uVar2 < param_4))) ==
            (int)((iVar7 - param_5) - (uint)(uVar2 < param_4)) < 0) {
          iVar8 = param_5 + (uint)(0xfffffffc < param_4);
          iVar9 = iVar6 + (uint)(0xfffffffc < uVar1);
          uVar4 = (uint)(uVar1 + 3 < param_2);
          iVar5 = iVar9 - param_3;
          if ((SBORROW4(iVar9,param_3) != SBORROW4(iVar5,uVar4)) == (int)(iVar5 - uVar4) < 0) {
            uVar1 = (uint)(param_4 + 3 < uVar2);
            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar1)) ==
                (int)((iVar8 - iVar7) - uVar1) < 0) {
              puVar3 = (undefined4 *)*puVar10;
              param_1[2] = param_1[2] + -1;
              FUN_001e9f90(puVar10);
              FUN_001e6db0(puVar10);
              puVar10 = puVar3;
            }
            else {
              puVar10[2] = param_4;
              puVar10[3] = param_5;
            }
          }
          else {
            uVar2 = (uint)(param_4 + 3 < uVar2);
            if ((SBORROW4(iVar8,iVar7) != SBORROW4(iVar8 - iVar7,uVar2)) ==
                (int)((iVar8 - iVar7) - uVar2) < 0) {
              puVar10[4] = param_2;
              puVar10[5] = param_3;
            }
            else {
              puVar10[2] = param_4;
              puVar10[3] = param_5;
              iVar7 = FUN_001e5200(0x18);
              *(int *)(iVar7 + 0xc) = iVar6;
              *(uint *)(iVar7 + 8) = uVar1;
              *(uint *)(iVar7 + 0x10) = param_2;
              *(int *)(iVar7 + 0x14) = param_3;
              FUN_001e9f70(iVar7,puVar10);
              DAT_0038f4bc = DAT_0038f4bc + 1;
              param_1[2] = param_1[2] + 1;
            }
          }
          param_1[3] = puVar10;
          return;
        }
      }
    }
    if ((DAT_0038f378[2] != 0) && ((*(byte *)(DAT_0038f378 + 5) & 0x10) != 0)) {
      FUN_000653f0(*DAT_0038f378,"Free_list::remove(%d,%d) not found",param_2,param_4);
      return;
    }
  }
  return;
}

