
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: relocate_relocs<32, false, gold::Default_classify_reloc<4, 32, false> > */

void gold::relocate_relocs<32,_false,_gold::Default_classify_reloc<4,_32,_false>_>
               (Relocate_info<32,_false> *relinfo,uchar *prelocs,size_t reloc_count,
               Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,
               Elf_Addr view_address,section_size_type view_size,uchar *reloc_view,
               section_size_type reloc_view_size)

{
  char cVar1;
  byte bVar2;
  Sized_relobj_file<32,_false> *object;
  _func_int_varargs **pp_Var3;
  _func_int_varargs *p_Var4;
  int iVar5;
  pointer pSVar6;
  int *piVar7;
  pointer ppOVar8;
  pointer ppSVar9;
  uint uVar10;
  int iVar11;
  Symbol *from;
  uint uVar12;
  uint uVar14;
  int unaff_EDI;
  uint uVar15;
  int *local_50;
  Output_section *local_48;
  uint local_38;
  pointer puVar13;
  
  __x86_get_pc_thunk_di();
  object = relinfo->object;
  pp_Var3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;
  p_Var4 = pp_Var3[0x23];
  if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x218b7)) {
    local_38 = (*pp_Var3[0x2f])(object);
  }
  else {
    local_38 = (*p_Var4)(object);
  }
  iVar5 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);
  if (iVar5 == 0) {
                    /* WARNING: Subroutine does not return */
    do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x5c,&UNK_003c0d41 + unaff_EDI);
  }
  cVar1 = *(char *)(iVar5 + 0x318d);
  if (reloc_count == 0) {
LAB_00092821:
    if (reloc_view_size != reloc_count) {
                    /* WARNING: Subroutine does not return */
      do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,
                          (char *)(unaff_EDI + 0x3c09ed));
    }
    return;
  }
  puVar13 = (relinfo->rr->reloc_strategies_).
            super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;
  if ((relinfo->rr->reloc_strategies_).
      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish != puVar13
     ) {
    uVar15 = 0;
    local_50 = (int *)reloc_view;
    do {
      bVar2 = puVar13[uVar15];
      uVar12 = (uint)bVar2;
      if (uVar12 != 8) {
        if (uVar12 == 9) {
          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);
          if (piVar7 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,
                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));
          }
          (**(code **)(*piVar7 + 200))
                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,
                     view_address,view_size,local_50);
          local_50 = local_50 + 3;
        }
        else {
          uVar10 = *(uint *)((int)prelocs + 4) >> 8;
          if (uVar10 < local_38) {
            if (bVar2 == 0) {
              if (uVar10 == 0) {
                uVar14 = 0;
              }
              else {
                pSVar6 = (object->local_values_).
                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                         ._M_impl._M_start;
                if ((uint)((int)(object->local_values_).
                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {
                    /* WARNING: Subroutine does not return */
                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,
                                      (char *)(unaff_EDI + 0x3c09c1));
                }
                uVar14 = pSVar6[uVar10].output_symtab_index_;
                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {
                    /* WARNING: Subroutine does not return */
                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI
                                     );
                }
              }
            }
            else {
              if (7 < bVar2) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,
                                    (char *)(unaff_EDI + 0x3c09ed));
              }
              pSVar6 = (object->local_values_).
                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                       ._M_impl._M_start;
              if ((uint)((int)(object->local_values_).
                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,
                                    (char *)(unaff_EDI + 0x3c0991));
              }
              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;
              if ((pSVar6[uVar10].field_0xb & 8) == 0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,
                                    (char *)(unaff_EDI + 0x3c09ed));
              }
              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.
                       _vptr_Object[0x18];
              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {
                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.
                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                          ._M_impl._M_start;
                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.
                                output_sections_.
                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>
                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {
                    /* WARNING: Subroutine does not return */
                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,
                                      (char *)(unaff_EDI + 0x3c097d));
                }
                local_48 = ppOVar8[uVar14];
              }
              else {
                local_48 = (Output_section *)(*p_Var4)(object,uVar14);
              }
              if (local_48 == (Output_section *)0x0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,
                                    (char *)(unaff_EDI + 0x3c09ed));
              }
              if ((local_48->field_0x90 & 1) == 0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,
                                    (char *)(unaff_EDI + 0x3c09ed));
              }
              uVar14 = local_48->symtab_index_;
              if (uVar14 == 0) {
                    /* WARNING: Subroutine does not return */
                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,
                                    (char *)(unaff_EDI + 0x3c096d));
              }
            }
          }
          else {
            if (uVar10 < object->local_symbol_count_) {
LAB_000931c0:
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,
                                  (char *)(unaff_EDI + 0x3c09ed));
            }
            uVar14 = uVar10 - object->local_symbol_count_;
            ppSVar9 = (object->symbols_).
                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.
                      _M_start;
            if ((uint)((int)(object->symbols_).
                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.
                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);
            }
            from = ppSVar9[uVar14];
            if (from == (Symbol *)0x0) goto LAB_000931c0;
            if ((from->field_0x2a & 0x10) != 0) {
              from = Symbol_table::resolve_forwards(relinfo->symtab,from);
            }
            uVar14 = from->symtab_index_;
            if (uVar14 == 0) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,
                                  (char *)(unaff_EDI + 0x3c09ed));
            }
          }
          iVar5 = *(int *)prelocs;
          if (offset_in_output_section == 0xffffffff) {
            iVar11 = Output_section::output_offset
                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);
            if (iVar11 == -1) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,
                                  (char *)(unaff_EDI + 0x3c09ed));
            }
            if (cVar1 == '\0') {
              iVar11 = view_address + iVar11;
            }
          }
          else {
            iVar11 = view_address + iVar5;
            if (cVar1 != '\0') {
              iVar11 = offset_in_output_section + iVar5;
            }
          }
          *local_50 = iVar11;
          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);
          if (uVar12 != 0) {
            if ((uint)((int)(object->local_values_).
                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                            ._M_impl._M_finish -
                       (int)(object->local_values_).
                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>
                            ._M_impl._M_start >> 4) <= uVar10) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,
                                  (char *)(unaff_EDI + 0x3c094d));
            }
            if (7 < bVar2) {
                    /* WARNING: Subroutine does not return */
              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,
                                  (char *)(unaff_EDI + 0x3c09ed));
            }
                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();
            return;
          }
          local_50[2] = *(int *)((int)prelocs + 8);
          local_50 = local_50 + 3;
        }
      }
      if (reloc_count == uVar15 + 1) {
        reloc_count = (int)local_50 - (int)reloc_view;
        goto LAB_00092821;
      }
      uVar15 = uVar15 + 1;
      prelocs = (uchar *)((int)prelocs + 0xc);
      puVar13 = (relinfo->rr->reloc_strategies_).
                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;
    } while (uVar15 < (uint)((int)(relinfo->rr->reloc_strategies_).
                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.
                                  _M_impl._M_finish - (int)puVar13));
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable(&UNK_003baecf + unaff_EDI,0x127,(char *)(unaff_EDI + 0x3c09e1));
}



void FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,
                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)

{
  char cVar1;
  byte bVar2;
  int *piVar3;
  code *pcVar4;
  int iVar5;
  int *piVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int unaff_EDI;
  uint uVar12;
  int *local_50;
  int local_48;
  uint local_38;
  
  FUN_00074f0a();
  piVar3 = (int *)param_1[2];
  pcVar4 = *(code **)(*piVar3 + 0x8c);
  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {
    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);
  }
  else {
    local_38 = (*pcVar4)(piVar3);
  }
  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);
  if (iVar11 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);
  }
  cVar1 = *(char *)(iVar11 + 0x318d);
  if (param_3 == 0) {
LAB_00092821:
    if (param_10 != param_3) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);
    }
    return;
  }
  iVar11 = *(int *)param_1[5];
  if (((int *)param_1[5])[1] != iVar11) {
    uVar12 = 0;
    local_50 = param_9;
    do {
      bVar2 = *(byte *)(iVar11 + uVar12);
      uVar10 = (uint)bVar2;
      if (uVar10 != 8) {
        if (uVar10 == 9) {
          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);
          if (piVar6 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);
          }
          (**(code **)(*piVar6 + 200))
                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,
                     local_50);
          local_50 = local_50 + 3;
        }
        else {
          uVar7 = (uint)param_2[1] >> 8;
          if (uVar7 < local_38) {
            if (bVar2 == 0) {
              if (uVar7 == 0) {
                iVar11 = 0;
              }
              else {
                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);
                }
                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);
                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);
                }
              }
            }
            else {
              if (7 < bVar2) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);
              }
              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);
              }
              iVar11 = piVar3[0x37] + uVar7 * 0x10;
              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;
              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);
              }
              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {
                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);
                }
                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);
              }
              else {
                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);
              }
              if (local_48 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);
              }
              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);
              }
              iVar11 = *(int *)(local_48 + 100);
              if (iVar11 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);
              }
            }
          }
          else {
            if (uVar7 < (uint)piVar3[0x2c]) {
LAB_000931c0:
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);
            }
            uVar8 = uVar7 - piVar3[0x2c];
            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);
            }
            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);
            if (iVar11 == 0) goto LAB_000931c0;
            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {
              iVar11 = FUN_0034cd90(*param_1,iVar11);
            }
            iVar11 = *(int *)(iVar11 + 0x10);
            if (iVar11 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);
            }
          }
          iVar5 = *param_2;
          if (param_5 == -1) {
            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);
            if (iVar9 == -1) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);
            }
            if (cVar1 == '\0') {
              iVar9 = param_7 + iVar9;
            }
          }
          else {
            iVar9 = param_7 + iVar5;
            if (cVar1 != '\0') {
              iVar9 = param_5 + iVar5;
            }
          }
          *local_50 = iVar9;
          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);
          if (uVar10 != 0) {
            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);
            }
            if (7 < bVar2) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);
            }
                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();
            return;
          }
          local_50[2] = param_2[2];
          local_50 = local_50 + 3;
        }
      }
      if (param_3 == uVar12 + 1) {
        param_3 = (int)local_50 - (int)param_9;
        goto LAB_00092821;
      }
      uVar12 = uVar12 + 1;
      param_2 = param_2 + 3;
      iVar11 = *(int *)param_1[5];
    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));
  }
                    /* WARNING: Subroutine does not return */
  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);
}


PUSH EBP
PUSH EDI
CALL 0x00074f0a
ADD EDI,0x557a09
PUSH ESI
PUSH EBX
SUB ESP,0x4c
MOV EAX,dword ptr [ESP + 0x60]
LEA ECX,[EDI + 0xffa86d40]
MOV dword ptr [ESP + 0x28],EDI
MOV ESI,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESI]
MOV dword ptr [ESP + 0x18],ESI
MOV EDX,dword ptr [EAX + 0x8c]
CMP EDX,ECX
JNZ 0x000930ee
SUB ESP,0xc
PUSH ESI
CALL dword ptr [EAX + 0xbc]
MOV dword ptr [ESP + 0x34],EAX
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x28]
LEA EAX,[EAX + 0x7c8]
MOV dword ptr [ESP + 0x2c],EAX
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x000932b5
MOVZX EAX,byte ptr [EAX + 0x318d]
MOV byte ptr [ESP + 0x23],AL
MOV EAX,dword ptr [ESP + 0x68]
TEST EAX,EAX
JZ 0x00092821
MOV EAX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EAX + 0x14]
MOV EDX,dword ptr [EAX]
CMP dword ptr [EAX + 0x4],EDX
JZ 0x00093122
MOV EAX,dword ptr [ESP + 0x80]
XOR ESI,ESI
MOV EDI,ESI
MOV ESI,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x28]
LEA EAX,[EAX + 0xffa87550]
MOV dword ptr [ESP + 0x34],EAX
JMP 0x00092790
MOV EAX,dword ptr [ESI + 0x4]
SHR EAX,0x8
MOV dword ptr [ESP + 0x8],EAX
CMP dword ptr [ESP + 0x24],EAX
JBE 0x00092e40
MOVZX EAX,byte ptr [ESP + 0x10]
TEST AL,AL
JNZ 0x00092840
MOV EBX,dword ptr [ESP + 0x8]
TEST EBX,EBX
JZ 0x00092f10
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EAX + 0xdc]
MOV EAX,dword ptr [EAX + 0xe0]
MOV dword ptr [ESP + 0x14],EAX
SUB EAX,ECX
SAR EAX,0x4
CMP EBX,EAX
JNC 0x00093296
MOV EAX,dword ptr [ESP + 0x8]
SHL EAX,0x4
MOV EBP,dword ptr [ECX + EAX*0x1]
TEST EBP,EBP
SETNZ CL
CMP EBP,-0x2
SETNZ AL
TEST CL,AL
JZ 0x000931fb
CMP EBP,-0x1
JZ 0x000931fb
MOV dword ptr [ESP + 0x14],0x0
CMP dword ptr [ESP + 0x70],-0x1
MOV ECX,dword ptr [ESI]
JZ 0x00092ec0
MOV EBX,dword ptr [ESP + 0x70]
MOV EAX,dword ptr [ESP + 0x78]
ADD EBX,ECX
ADD EAX,ECX
CMP byte ptr [ESP + 0x23],0x0
CMOVNZ EAX,EBX
MOV EBX,dword ptr [ESP + 0xc]
SHL EBP,0x8
MOV dword ptr [EBX],EAX
MOVZX EAX,byte ptr [ESI + 0x4]
ADD EBP,EAX
MOV dword ptr [EBX + 0x4],EBP
TEST EDX,EDX
JNZ 0x00092908
MOV EAX,dword ptr [ESI + 0x8]
MOV dword ptr [EBX + 0x8],EAX
ADD dword ptr [ESP + 0xc],0xc
ADD EDI,0x1
ADD ESI,0xc
CMP dword ptr [ESP + 0x68],EDI
JZ 0x00092812
MOV EAX,dword ptr [ESP + 0x60]
MOV EAX,dword ptr [EAX + 0x14]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x4]
SUB EAX,EDX
CMP EAX,EDI
JBE 0x00093122
MOVZX EDX,byte ptr [EDX + EDI*0x1]
MOV byte ptr [ESP + 0x10],DL
CMP EDX,0x8
JZ 0x0009276a
CMP EDX,0x9
JNZ 0x000926a8
MOV EAX,dword ptr [ESP + 0x2c]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xc]
TEST EAX,EAX
JZ 0x000931df
SUB ESP,0x4
MOV EDX,dword ptr [EAX]
MOV EBX,dword ptr [ESP + 0x10]
PUSH EBX
PUSH dword ptr [ESP + 0x84]
PUSH dword ptr [ESP + 0x84]
PUSH dword ptr [ESP + 0x84]
PUSH dword ptr [ESP + 0x84]
PUSH dword ptr [ESP + 0x84]
PUSH EDI
ADD EDI,0x1
PUSH ESI
ADD ESI,0xc
PUSH 0x4
PUSH dword ptr [ESP + 0x88]
PUSH EAX
CALL dword ptr [EDX + 0xc8]
MOV EAX,EBX
ADD EAX,0xc
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x30
CMP dword ptr [ESP + 0x68],EDI
JNZ 0x0009277a
MOV EAX,dword ptr [ESP + 0xc]
SUB EAX,dword ptr [ESP + 0x80]
MOV dword ptr [ESP + 0x68],EAX
MOV EAX,dword ptr [ESP + 0x68]
CMP dword ptr [ESP + 0x84],EAX
JNZ 0x000932ec
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x7
JA 0x00093141
MOV EAX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EAX + 0xdc]
MOV EAX,dword ptr [EAX + 0xe0]
MOV dword ptr [ESP + 0x14],EAX
SUB EAX,ECX
SAR EAX,0x4
CMP dword ptr [ESP + 0x8],EAX
JNC 0x00093160
MOV EAX,dword ptr [ESP + 0x8]
SHL EAX,0x4
ADD ECX,EAX
MOV EAX,dword ptr [ECX + 0x8]
AND EAX,0x7ffffff
TEST byte ptr [ECX + 0xb],0x8
JZ 0x0009319e
MOV EBX,dword ptr [ESP + 0x18]
MOV ECX,dword ptr [EBX]
MOV ECX,dword ptr [ECX + 0x60]
CMP ECX,dword ptr [ESP + 0x34]
JNZ 0x00092f48
MOV ECX,EBX
MOV EBX,dword ptr [EBX + 0x38]
MOV ECX,dword ptr [ECX + 0x3c]
MOV dword ptr [ESP + 0x14],ECX
SUB ECX,EBX
SAR ECX,0x2
CMP EAX,ECX
JNC 0x0009317f
MOV EAX,dword ptr [EBX + EAX*0x4]
MOV dword ptr [ESP + 0x14],EAX
MOV EBP,dword ptr [ESP + 0x14]
TEST EBP,EBP
JZ 0x00093239
MOV EAX,dword ptr [ESP + 0x14]
TEST byte ptr [EAX + 0x90],0x1
JZ 0x0009321a
MOV EAX,dword ptr [ESP + 0x14]
MOV EBP,dword ptr [EAX + 0x64]
TEST EBP,EBP
JNZ 0x00092724
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68f64]
PUSH EAX
LEA EAX,[EBX + 0xffe6335d]
PUSH 0xd81
PUSH EAX
CALL 0x002446e0
MOV EAX,dword ptr [ESP + 0x18]
MOV EBX,dword ptr [EAX + 0xdc]
MOV EAX,dword ptr [EAX + 0xe0]
MOV dword ptr [ESP + 0x1c],EAX
SUB EAX,EBX
SAR EAX,0x4
CMP dword ptr [ESP + 0x8],EAX
JNC 0x00093258
MOV EAX,dword ptr [ESP + 0x8]
ADD ECX,dword ptr [ESP + 0x74]
MOV dword ptr [ESP + 0x1c],ECX
SHL EAX,0x4
ADD EAX,EBX
CMP byte ptr [ESP + 0x10],0x7
MOV dword ptr [ESP + 0x8],EAX
JA 0x00093103
MOV EAX,dword ptr [ESP + 0x28]
ADD EAX,dword ptr [EAX + EDX*0x4 + 0xffe69bd8]
JMP EAX
MOV ECX,dword ptr [ESP + 0x18]
MOV EBX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [ECX + 0xb0]
CMP EBX,EAX
JC 0x000931c0
SUB EBX,EAX
MOV EAX,ECX
MOV ECX,dword ptr [ECX + 0xbc]
MOV EAX,dword ptr [EAX + 0xc0]
MOV dword ptr [ESP + 0x14],EAX
SUB EAX,ECX
SAR EAX,0x2
CMP EBX,EAX
JNC 0x00093345
MOV EAX,dword ptr [ECX + EBX*0x4]
TEST EAX,EAX
JZ 0x000931c0
TEST byte ptr [EAX + 0x2a],0x10
JNZ 0x00092f20
MOV EBP,dword ptr [EAX + 0x10]
TEST EBP,EBP
JNZ 0x0009271c
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x371
PUSH EAX
CALL 0x002446e0
MOV dword ptr [ESP + 0x30],EDX
PUSH ECX
MOV EAX,dword ptr [ESP + 0x64]
MOV dword ptr [ESP + 0x20],ECX
PUSH dword ptr [EAX + 0x18]
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESP + 0x78]
MOV EBX,dword ptr [ESP + 0x38]
CALL 0x002cda80
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x1c]
MOV EDX,dword ptr [ESP + 0x30]
CMP EAX,-0x1
JZ 0x00093309
MOV EBX,dword ptr [ESP + 0x78]
ADD EBX,EAX
CMP byte ptr [ESP + 0x23],0x0
CMOVZ EAX,EBX
JMP 0x00092745
XOR EBP,EBP
MOV dword ptr [ESP + 0x14],0x0
JMP 0x00092724
MOV dword ptr [ESP + 0x14],EDX
SUB ESP,0x8
PUSH EAX
MOV EAX,dword ptr [ESP + 0x6c]
PUSH dword ptr [EAX]
MOV EBX,dword ptr [ESP + 0x38]
CALL 0x0034cd90
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x14]
JMP 0x00092e8c
MOV dword ptr [ESP + 0x1c],EDX
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [ESP + 0x24]
CALL ECX
MOV dword ptr [ESP + 0x24],EAX
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x1c]
JMP 0x000928b9
SUB ESP,0xc
PUSH dword ptr [ESP + 0x24]
CALL EDX
MOV dword ptr [ESP + 0x34],EAX
ADD ESP,0x10
JMP 0x00092638
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x3da
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fd8]
PUSH EAX
LEA EAX,[EBX + 0xffe634c6]
PUSH 0x127
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x367
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68f88]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8db
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68f74]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x5c8
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x35e
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x36d
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fc8]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x73
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fa4]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x704
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x361
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x360
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68f44]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8c1
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fb8]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8ca
PUSH EAX
CALL 0x002446e0
PUSH EAX
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe69338]
PUSH EAX
LEA EAX,[EBX + 0xffe5e26d]
PUSH 0x5c
PUSH EAX
CALL 0x002446e0
PUSH EAX
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x3e2
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68fe4]
PUSH EAX
LEA EAX,[EBX + 0xffe634d9]
PUSH 0x383
PUSH EAX
CALL 0x002446e0
SUB ESP,0x4
MOV EBX,dword ptr [ESP + 0x2c]
LEA EAX,[EBX + 0xffe68f54]
PUSH EAX
LEA EAX,[EBX + 0xffe63385]
PUSH 0x8ad
PUSH EAX
CALL 0x002446e0
(translation_unit "void FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)\n\n{\n  char cVar1;\n  byte bVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  int *piVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EDI;\n  uint uVar12;\n  int *local_50;\n  int local_48;\n  uint local_38;\n  \n  FUN_00074f0a();\n  piVar3 = (int *)param_1[2];\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }\n  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }\n  cVar1 = *(char *)(iVar11 + 0x318d);\n  if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }\n  iVar11 = *(int *)param_1[5];\n  if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);\n}\n\n" (function_definition "void FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)\n\n{\n  char cVar1;\n  byte bVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  int *piVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EDI;\n  uint uVar12;\n  int *local_50;\n  int local_48;\n  uint local_38;\n  \n  FUN_00074f0a();\n  piVar3 = (int *)param_1[2];\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }\n  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }\n  cVar1 = *(char *)(iVar11 + 0x318d);\n  if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }\n  iVar11 = *(int *)param_1[5];\n  if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);\n}" primitive_type (function_declarator "FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)" identifier (parameter_list "(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "int param_10" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  int *piVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EDI;\n  uint uVar12;\n  int *local_50;\n  int local_48;\n  uint local_38;\n  \n  FUN_00074f0a();\n  piVar3 = (int *)param_1[2];\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }\n  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }\n  cVar1 = *(char *)(iVar11 + 0x318d);\n  if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }\n  iVar11 = *(int *)param_1[5];\n  if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3 = (int *)param_1[2];" (assignment_expression "piVar3 = (int *)param_1[2]" identifier = (cast_expression "(int *)param_1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0x8c);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0x8c)" identifier = (pointer_expression "*(code **)(*piVar3 + 0x8c)" * (cast_expression "(code **)(*piVar3 + 0x8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x8c)" ( (binary_expression "*piVar3 + 0x8c" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }" if (parenthesized_expression "(pcVar4 == (code *)(unaff_EDI + -0x218b7))" ( (binary_expression "pcVar4 == (code *)(unaff_EDI + -0x218b7)" identifier == (cast_expression "(code *)(unaff_EDI + -0x218b7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0x218b7)" ( (binary_expression "unaff_EDI + -0x218b7" identifier + number_literal) )))) )) (compound_statement "{\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }" { (expression_statement "local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);" (assignment_expression "local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xbc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xbc))" ( (pointer_expression "**(code **)(*piVar3 + 0xbc)" * (pointer_expression "*(code **)(*piVar3 + 0xbc)" * (cast_expression "(code **)(*piVar3 + 0xbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xbc)" ( (binary_expression "*piVar3 + 0xbc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n    local_38 = (*pcVar4)(piVar3);\n  }" else (compound_statement "{\n    local_38 = (*pcVar4)(piVar3);\n  }" { (expression_statement "local_38 = (*pcVar4)(piVar3);" (assignment_expression "local_38 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);" (assignment_expression "iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" * (cast_expression "(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI + 4" (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);" (call_expression "FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0)" identifier (argument_list "(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0)" ( (binary_expression "unaff_EDI + 0x3b5c76" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c0d41" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "cVar1 = *(char *)(iVar11 + 0x318d);" (assignment_expression "cVar1 = *(char *)(iVar11 + 0x318d)" identifier = (pointer_expression "*(char *)(iVar11 + 0x318d)" * (cast_expression "(char *)(iVar11 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x318d)" ( (binary_expression "iVar11 + 0x318d" identifier + number_literal) ))))) ;) (if_statement "if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00092821:\n    if (param_10 != param_3) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }" { (labeled_statement "LAB_00092821:\n    if (param_10 != param_3) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" statement_identifier : (if_statement "if (param_10 != param_3) {\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" if (parenthesized_expression "(param_10 != param_3)" ( (binary_expression "param_10 != param_3" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) , identifier ))) ;) }))) (return_statement "return;" return ;) })) (expression_statement "iVar11 = *(int *)param_1[5];" (assignment_expression "iVar11 = *(int *)param_1[5]" identifier = (pointer_expression "*(int *)param_1[5]" * (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])))) ;) (if_statement "if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }" if (parenthesized_expression "(((int *)param_1[5])[1] != iVar11)" ( (binary_expression "((int *)param_1[5])[1] != iVar11" (subscript_expression "((int *)param_1[5])[1]" (parenthesized_expression "((int *)param_1[5])" ( (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])) )) [ number_literal ]) != identifier) )) (compound_statement "{\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "local_50 = param_9;" (assignment_expression "local_50 = param_9" identifier = identifier) ;) (do_statement "do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));" do (compound_statement "{\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    }" { (expression_statement "bVar2 = *(byte *)(iVar11 + uVar12);" (assignment_expression "bVar2 = *(byte *)(iVar11 + uVar12)" identifier = (pointer_expression "*(byte *)(iVar11 + uVar12)" * (cast_expression "(byte *)(iVar11 + uVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + uVar12)" ( (binary_expression "iVar11 + uVar12" identifier + identifier) ))))) ;) (expression_statement "uVar10 = (uint)bVar2;" (assignment_expression "uVar10 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }" if (parenthesized_expression "(uVar10 != 8)" ( (binary_expression "uVar10 != 8" identifier != number_literal) )) (compound_statement "{\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }" { (if_statement "if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" if (parenthesized_expression "(uVar10 == 9)" ( (binary_expression "uVar10 == 9" identifier == number_literal) )) (compound_statement "{\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }" { (expression_statement "piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);" (assignment_expression "piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" * (cast_expression "(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" * (cast_expression "(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI + 4" (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1)" identifier (argument_list "(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1)" ( (binary_expression "unaff_EDI + 0x3b5c76" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09d1" identifier + number_literal) ))) ;) })) (expression_statement "(**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);" (call_expression "(**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50)" (parenthesized_expression "(**(code **)(*piVar6 + 200))" ( (pointer_expression "**(code **)(*piVar6 + 200)" * (pointer_expression "*(code **)(*piVar6 + 200)" * (cast_expression "(code **)(*piVar6 + 200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 200)" ( (binary_expression "*piVar6 + 200" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "(piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_50 = local_50 + 3;" (assignment_expression "local_50 = local_50 + 3" identifier = (binary_expression "local_50 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" else (compound_statement "{\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" { (expression_statement "uVar7 = (uint)param_2[1] >> 8;" (assignment_expression "uVar7 = (uint)param_2[1] >> 8" identifier = (binary_expression "(uint)param_2[1] >> 8" (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) >> number_literal)) ;) (if_statement "if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" if (parenthesized_expression "(uVar7 < local_38)" ( (binary_expression "uVar7 < local_38" identifier < identifier) )) (compound_statement "{\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }" { (if_statement "if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }" { (if_statement "if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar11 = 0;\n              }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" else (compound_statement "{\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" { (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }" if (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" ( (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" ( (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09c1" identifier + number_literal) ))) ;) })) (expression_statement "iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);" (assignment_expression "iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10)" identifier = (pointer_expression "*(int *)(piVar3[0x37] + uVar7 * 0x10)" * (cast_expression "(int *)(piVar3[0x37] + uVar7 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x37] + uVar7 * 0x10)" ( (binary_expression "piVar3[0x37] + uVar7 * 0x10" (subscript_expression "piVar3[0x37]" identifier [ number_literal ]) + (binary_expression "uVar7 * 0x10" identifier * number_literal)) ))))) ;) (if_statement "if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }" if (parenthesized_expression "((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1))" ( (binary_expression "(iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)" (parenthesized_expression "(iVar11 == 0 || iVar11 == -2)" ( (binary_expression "iVar11 == 0 || iVar11 == -2" (binary_expression "iVar11 == 0" identifier == number_literal) || (binary_expression "iVar11 == -2" identifier == number_literal)) )) || (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "&LAB_003c09ad + unaff_EDI" (pointer_expression "&LAB_003c09ad" & identifier) + identifier) ))) ;) })) }))) }) (else_clause "else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" else (compound_statement "{\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" { (if_statement "if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }" if (parenthesized_expression "(7 < bVar2)" ( (binary_expression "7 < bVar2" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }" if (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" ( (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" ( (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c0991" identifier + number_literal) ))) ;) })) (expression_statement "iVar11 = piVar3[0x37] + uVar7 * 0x10;" (assignment_expression "iVar11 = piVar3[0x37] + uVar7 * 0x10" identifier = (binary_expression "piVar3[0x37] + uVar7 * 0x10" (subscript_expression "piVar3[0x37]" identifier [ number_literal ]) + (binary_expression "uVar7 * 0x10" identifier * number_literal))) ;) (expression_statement "uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;" (assignment_expression "uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff" identifier = (binary_expression "*(uint *)(iVar11 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }" if (parenthesized_expression "((*(byte *)(iVar11 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar11 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0xb) & 8)" ( (binary_expression "*(byte *)(iVar11 + 0xb) & 8" (pointer_expression "*(byte *)(iVar11 + 0xb)" * (cast_expression "(byte *)(iVar11 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xb)" ( (binary_expression "iVar11 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (if_statement "if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" if (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7))" ( (binary_expression "*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)" (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) )))) == (cast_expression "(code *)(unaff_EDI + -0x210a7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0x210a7)" ( (binary_expression "unaff_EDI + -0x210a7" identifier + number_literal) )))) )) (compound_statement "{\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }" { (if_statement "if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }" if (parenthesized_expression "((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8)" ( (binary_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8" (call_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0xf] - piVar3[0xe] >> 2)" ( (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar3[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c097d" identifier + number_literal) ))) ;) })) (expression_statement "local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);" (assignment_expression "local_48 = *(int *)(piVar3[0xe] + uVar8 * 4)" identifier = (pointer_expression "*(int *)(piVar3[0xe] + uVar8 * 4)" * (cast_expression "(int *)(piVar3[0xe] + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0xe] + uVar8 * 4)" ( (binary_expression "piVar3[0xe] + uVar8 * 4" (subscript_expression "piVar3[0xe]" identifier [ number_literal ]) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" else (compound_statement "{\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" { (expression_statement "local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);" (assignment_expression "local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8)" identifier = (call_expression "(**(code **)(*piVar3 + 0x60))(piVar3,uVar8)" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" ( (pointer_expression "**(code **)(*piVar3 + 0x60)" * (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3,uVar8)" ( identifier , identifier )))) ;) }))) (if_statement "if (local_48 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (if_statement "if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }" if (parenthesized_expression "((*(byte *)(local_48 + 0x90) & 1) == 0)" ( (binary_expression "(*(byte *)(local_48 + 0x90) & 1) == 0" (parenthesized_expression "(*(byte *)(local_48 + 0x90) & 1)" ( (binary_expression "*(byte *)(local_48 + 0x90) & 1" (pointer_expression "*(byte *)(local_48 + 0x90)" * (cast_expression "(byte *)(local_48 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 0x90)" ( (binary_expression "local_48 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (expression_statement "iVar11 = *(int *)(local_48 + 100);" (assignment_expression "iVar11 = *(int *)(local_48 + 100)" identifier = (pointer_expression "*(int *)(local_48 + 100)" * (cast_expression "(int *)(local_48 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 100)" ( (binary_expression "local_48 + 100" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d)" identifier (argument_list "(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d)" ( (binary_expression "unaff_EDI + 0x3bad66" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c096d" identifier + number_literal) ))) ;) })) }))) }) (else_clause "else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" else (compound_statement "{\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" { (if_statement "if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }" if (parenthesized_expression "(uVar7 < (uint)piVar3[0x2c])" ( (binary_expression "uVar7 < (uint)piVar3[0x2c]" identifier < (cast_expression "(uint)piVar3[0x2c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x2c]" identifier [ number_literal ]))) )) (compound_statement "{\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }" { (labeled_statement "LAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);" statement_identifier : comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;)) })) (expression_statement "uVar8 = uVar7 - piVar3[0x2c];" (assignment_expression "uVar8 = uVar7 - piVar3[0x2c]" identifier = (binary_expression "uVar7 - piVar3[0x2c]" identifier - (subscript_expression "piVar3[0x2c]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }" if (parenthesized_expression "((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8)" ( (binary_expression "(uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8" (call_expression "(uint)(piVar3[0x30] - piVar3[0x2f] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x30] - piVar3[0x2f] >> 2)" ( (binary_expression "piVar3[0x30] - piVar3[0x2f] >> 2" (binary_expression "piVar3[0x30] - piVar3[0x2f]" (subscript_expression "piVar3[0x30]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x2f]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "&UNK_003c095d + unaff_EDI" (pointer_expression "&UNK_003c095d" & identifier) + identifier) ))) ;) })) (expression_statement "iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);" (assignment_expression "iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4)" identifier = (pointer_expression "*(int *)(piVar3[0x2f] + uVar8 * 4)" * (cast_expression "(int *)(piVar3[0x2f] + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x2f] + uVar8 * 4)" ( (binary_expression "piVar3[0x2f] + uVar8 * 4" (subscript_expression "piVar3[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_000931c0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000931c0;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }" if (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar11 + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 0x10)" ( (binary_expression "*(byte *)(iVar11 + 0x2a) & 0x10" (pointer_expression "*(byte *)(iVar11 + 0x2a)" * (cast_expression "(byte *)(iVar11 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a)" ( (binary_expression "iVar11 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }" { (expression_statement "iVar11 = FUN_0034cd90(*param_1,iVar11);" (assignment_expression "iVar11 = FUN_0034cd90(*param_1,iVar11)" identifier = (call_expression "FUN_0034cd90(*param_1,iVar11)" identifier (argument_list "(*param_1,iVar11)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) })) (expression_statement "iVar11 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar11 + 0x10)" identifier = (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) }))) (expression_statement "iVar5 = *param_2;" (assignment_expression "iVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" if (parenthesized_expression "(param_5 == -1)" ( (binary_expression "param_5 == -1" identifier == number_literal) )) (compound_statement "{\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }" { (expression_statement "iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);" (assignment_expression "iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5)" identifier = (call_expression "FUN_002cda80(param_4,piVar3,param_1[6],iVar5)" identifier (argument_list "(param_4,piVar3,param_1[6],iVar5)" ( identifier , identifier , (subscript_expression "param_1[6]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar9 == -1) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }" if (parenthesized_expression "(iVar9 == -1)" ( (binary_expression "iVar9 == -1" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (if_statement "if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar9 = param_7 + iVar9;\n            }" { (expression_statement "iVar9 = param_7 + iVar9;" (assignment_expression "iVar9 = param_7 + iVar9" identifier = (binary_expression "param_7 + iVar9" identifier + identifier)) ;) })) }) (else_clause "else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" else (compound_statement "{\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" { (expression_statement "iVar9 = param_7 + iVar5;" (assignment_expression "iVar9 = param_7 + iVar5" identifier = (binary_expression "param_7 + iVar5" identifier + identifier)) ;) (if_statement "if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar9 = param_5 + iVar5;\n            }" { (expression_statement "iVar9 = param_5 + iVar5;" (assignment_expression "iVar9 = param_5 + iVar5" identifier = (binary_expression "param_5 + iVar5" identifier + identifier)) ;) })) }))) (expression_statement "*local_50 = iVar9;" (assignment_expression "*local_50 = iVar9" (pointer_expression "*local_50" * identifier) = identifier) ;) (expression_statement "local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);" (assignment_expression "local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1)" (subscript_expression "local_50[1]" identifier [ number_literal ]) = (binary_expression "iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1)" (binary_expression "iVar11 * 0x100" identifier * number_literal) + (binary_expression "(uint)*(byte *)(param_2 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) (if_statement "if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }" { (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }" if (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" ( (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" ( (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c094d" identifier + number_literal) ))) ;) })) (if_statement "if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }" if (parenthesized_expression "(7 < bVar2)" ( (binary_expression "7 < bVar2" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }" { comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) comment comment (expression_statement "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();" (call_expression "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))()" (parenthesized_expression "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))" ( (pointer_expression "*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" * (cast_expression "(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" ( (binary_expression "unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" (binary_expression "unaff_EDI + 0x557a09" identifier + number_literal) + (pointer_expression "*(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c15e1 + uVar10 * 4)" ( (binary_expression "unaff_EDI + 0x3c15e1 + uVar10 * 4" (binary_expression "unaff_EDI + 0x3c15e1" identifier + number_literal) + (binary_expression "uVar10 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_50[2] = param_2[2];" (assignment_expression "local_50[2] = param_2[2]" (subscript_expression "local_50[2]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "local_50 = local_50 + 3;" (assignment_expression "local_50 = local_50 + 3" identifier = (binary_expression "local_50 + 3" identifier + number_literal)) ;) }))) })) (if_statement "if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }" if (parenthesized_expression "(param_3 == uVar12 + 1)" ( (binary_expression "param_3 == uVar12 + 1" identifier == (binary_expression "uVar12 + 1" identifier + number_literal)) )) (compound_statement "{\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }" { (expression_statement "param_3 = (int)local_50 - (int)param_9;" (assignment_expression "param_3 = (int)local_50 - (int)param_9" identifier = (binary_expression "(int)local_50 - (int)param_9" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00092821;" goto statement_identifier ;) })) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 3;" (assignment_expression "param_2 = param_2 + 3" identifier = (binary_expression "param_2 + 3" identifier + number_literal)) ;) (expression_statement "iVar11 = *(int *)param_1[5];" (assignment_expression "iVar11 = *(int *)param_1[5]" identifier = (pointer_expression "*(int *)param_1[5]" * (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])))) ;) }) while (parenthesized_expression "(uVar12 < (uint)(((int *)param_1[5])[1] - iVar11))" ( (binary_expression "uVar12 < (uint)(((int *)param_1[5])[1] - iVar11)" identifier < (call_expression "(uint)(((int *)param_1[5])[1] - iVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int *)param_1[5])[1] - iVar11)" ( (binary_expression "((int *)param_1[5])[1] - iVar11" (subscript_expression "((int *)param_1[5])[1]" (parenthesized_expression "((int *)param_1[5])" ( (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])) )) [ number_literal ]) - identifier) )))) )) ;) })) comment (expression_statement "FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1)" identifier (argument_list "(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1)" ( (binary_expression "unaff_EDI + 0x3baecf" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09e1" identifier + number_literal) ))) ;) })))
(translation_unit "/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original name: relocate_relocs<32, false, gold::Default_classify_reloc<4, 32, false> > */\n\nvoid gold::relocate_relocs<32,_false,_gold::Default_classify_reloc<4,_32,_false>_>\n               (Relocate_info<32,_false> *relinfo,uchar *prelocs,size_t reloc_count,\n               Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,\n               Elf_Addr view_address,section_size_type view_size,uchar *reloc_view,\n               section_size_type reloc_view_size)\n\n{\n  char cVar1;\n  byte bVar2;\n  Sized_relobj_file<32,_false> *object;\n  _func_int_varargs **pp_Var3;\n  _func_int_varargs *p_Var4;\n  int iVar5;\n  pointer pSVar6;\n  int *piVar7;\n  pointer ppOVar8;\n  pointer ppSVar9;\n  uint uVar10;\n  int iVar11;\n  Symbol *from;\n  uint uVar12;\n  uint uVar14;\n  int unaff_EDI;\n  uint uVar15;\n  int *local_50;\n  Output_section *local_48;\n  uint local_38;\n  pointer puVar13;\n  \n  __x86_get_pc_thunk_di();\n  object = relinfo->object;\n  pp_Var3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;\n  p_Var4 = pp_Var3[0x23];\n  if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x218b7)) {\n    local_38 = (*pp_Var3[0x2f])(object);\n  }\n  else {\n    local_38 = (*p_Var4)(object);\n  }\n  iVar5 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x5c,&UNK_003c0d41 + unaff_EDI);\n  }\n  cVar1 = *(char *)(iVar5 + 0x318d);\n  if (reloc_count == 0) {\nLAB_00092821:\n    if (reloc_view_size != reloc_count) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed));\n    }\n    return;\n  }\n  puVar13 = (relinfo->rr->reloc_strategies_).\n            super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n  if ((relinfo->rr->reloc_strategies_).\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish != puVar13\n     ) {\n    uVar15 = 0;\n    local_50 = (int *)reloc_view;\n    do {\n      bVar2 = puVar13[uVar15];\n      uVar12 = (uint)bVar2;\n      if (uVar12 != 8) {\n        if (uVar12 == 9) {\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }\n      }\n      if (reloc_count == uVar15 + 1) {\n        reloc_count = (int)local_50 - (int)reloc_view;\n        goto LAB_00092821;\n      }\n      uVar15 = uVar15 + 1;\n      prelocs = (uchar *)((int)prelocs + 0xc);\n      puVar13 = (relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    } while (uVar15 < (uint)((int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13));\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable(&UNK_003baecf + unaff_EDI,0x127,(char *)(unaff_EDI + 0x3c09e1));\n}\n\n" comment comment (declaration "void gold::relocate_relocs<32,_false,_gold::Default_classify_reloc<4,_32,_false>_>\n               (Relocate_info<32,_false> *relinfo,uchar *prelocs,size_t reloc_count,\n               Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,\n               Elf_Addr view_address,section_size_type view_size,uchar *reloc_view,\n               section_size_type reloc_view_size)\n\n{\n  char cVar1;" primitive_type (ERROR "gold::" identifier : :) identifier (ERROR "<32" < number_literal) , identifier , (ERROR "_gold::" identifier : :) identifier (ERROR "<4" < number_literal) , identifier , (ERROR "_false>_>\n               (Relocate_info<32,_false> *relinfo,uchar *prelocs,size_t reloc_count,\n               Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,\n               Elf_Addr view_address,section_size_type view_size,uchar *reloc_view,\n               section_size_type reloc_view_size)\n\n{\n  char" (function_declarator "_false>_>\n               (Relocate_info<32,_false> *relinfo,uchar *prelocs,size_t reloc_count,\n               Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,\n               Elf_Addr view_address,section_size_type view_size,uchar *reloc_view,\n               section_size_type reloc_view_size)" identifier (ERROR ">_>" > identifier >) (parameter_list "(Relocate_info<32,_false> *relinfo,uchar *prelocs,size_t reloc_count,\n               Output_section *output_section,Elf_Off offset_in_output_section,uchar *view,\n               Elf_Addr view_address,section_size_type view_size,uchar *reloc_view,\n               section_size_type reloc_view_size)" ( (parameter_declaration "Relocate_info" type_identifier) (ERROR "<32" < number_literal) , (parameter_declaration "_false> *relinfo" type_identifier (ERROR ">" >) (pointer_declarator "*relinfo" * identifier)) , (parameter_declaration "uchar *prelocs" type_identifier (pointer_declarator "*prelocs" * identifier)) , (parameter_declaration "size_t reloc_count" primitive_type identifier) , (parameter_declaration "Output_section *output_section" type_identifier (pointer_declarator "*output_section" * identifier)) , (parameter_declaration "Elf_Off offset_in_output_section" type_identifier identifier) , (parameter_declaration "uchar *view" type_identifier (pointer_declarator "*view" * identifier)) , (parameter_declaration "Elf_Addr view_address" type_identifier identifier) , (parameter_declaration "section_size_type view_size" type_identifier identifier) , (parameter_declaration "uchar *reloc_view" type_identifier (pointer_declarator "*reloc_view" * identifier)) , (parameter_declaration "section_size_type reloc_view_size" type_identifier identifier) ))) { primitive_type) identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (expression_statement "Sized_relobj_file<32,_false> *object;" (update_expression "Sized_relobj_file<32,_false> *object" (binary_expression "Sized_relobj_file<32,_false> *object" (binary_expression "Sized_relobj_file<32" identifier < number_literal) (ERROR ",_false" , identifier) > (pointer_expression "*object" * identifier)) --) ;) (declaration "_func_int_varargs **pp_Var3;" type_identifier (pointer_declarator "**pp_Var3" * (pointer_declarator "*pp_Var3" * identifier)) ;) (declaration "_func_int_varargs *p_Var4;" type_identifier (pointer_declarator "*p_Var4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "pointer pSVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "pointer ppOVar8;" type_identifier identifier ;) (declaration "pointer ppSVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "Symbol *from;" type_identifier (pointer_declarator "*from" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "Output_section *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "pointer puVar13;" type_identifier identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "object = relinfo->object;" (assignment_expression "object = relinfo->object" identifier = (field_expression "relinfo->object" identifier -> field_identifier)) ;) (expression_statement "pp_Var3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;" (assignment_expression "pp_Var3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" identifier = (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) ;) (expression_statement "p_Var4 = pp_Var3[0x23];" (assignment_expression "p_Var4 = pp_Var3[0x23]" identifier = (subscript_expression "pp_Var3[0x23]" identifier [ number_literal ])) ;) (if_statement "if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x218b7)) {\n    local_38 = (*pp_Var3[0x2f])(object);\n  }\n  else {\n    local_38 = (*p_Var4)(object);\n  }" if (parenthesized_expression "(p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x218b7))" ( (binary_expression "p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x218b7)" identifier == (cast_expression "(_func_int_varargs *)(unaff_EDI + -0x218b7)" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0x218b7)" ( (binary_expression "unaff_EDI + -0x218b7" identifier + number_literal) )))) )) (compound_statement "{\n    local_38 = (*pp_Var3[0x2f])(object);\n  }" { (expression_statement "local_38 = (*pp_Var3[0x2f])(object);" (assignment_expression "local_38 = (*pp_Var3[0x2f])(object)" identifier = (call_expression "(*pp_Var3[0x2f])(object)" (parenthesized_expression "(*pp_Var3[0x2f])" ( (pointer_expression "*pp_Var3[0x2f]" * (subscript_expression "pp_Var3[0x2f]" identifier [ number_literal ])) )) (argument_list "(object)" ( identifier )))) ;) }) (else_clause "else {\n    local_38 = (*p_Var4)(object);\n  }" else (compound_statement "{\n    local_38 = (*p_Var4)(object);\n  }" { (expression_statement "local_38 = (*p_Var4)(object);" (assignment_expression "local_38 = (*p_Var4)(object)" identifier = (call_expression "(*p_Var4)(object)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(object)" ( identifier )))) ;) }))) (expression_statement "iVar5 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);" (assignment_expression "iVar5 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" * (cast_expression "(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI + 4" (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x5c,&UNK_003c0d41 + unaff_EDI);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x5c,&UNK_003c0d41 + unaff_EDI);\n  }" { comment (expression_statement "do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x5c,&UNK_003c0d41 + unaff_EDI);" (call_expression "do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x5c,&UNK_003c0d41 + unaff_EDI)" identifier (argument_list "(&UNK_003b5c76 + unaff_EDI,0x5c,&UNK_003c0d41 + unaff_EDI)" ( (binary_expression "&UNK_003b5c76 + unaff_EDI" (pointer_expression "&UNK_003b5c76" & identifier) + identifier) , number_literal , (binary_expression "&UNK_003c0d41 + unaff_EDI" (pointer_expression "&UNK_003c0d41" & identifier) + identifier) ))) ;) })) (expression_statement "cVar1 = *(char *)(iVar5 + 0x318d);" (assignment_expression "cVar1 = *(char *)(iVar5 + 0x318d)" identifier = (pointer_expression "*(char *)(iVar5 + 0x318d)" * (cast_expression "(char *)(iVar5 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x318d)" ( (binary_expression "iVar5 + 0x318d" identifier + number_literal) ))))) ;) (if_statement "if (reloc_count == 0) {\nLAB_00092821:\n    if (reloc_view_size != reloc_count) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed));\n    }\n    return;\n  }" if (parenthesized_expression "(reloc_count == 0)" ( (binary_expression "reloc_count == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00092821:\n    if (reloc_view_size != reloc_count) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed));\n    }\n    return;\n  }" { (labeled_statement "LAB_00092821:\n    if (reloc_view_size != reloc_count) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed));\n    }" statement_identifier : (if_statement "if (reloc_view_size != reloc_count) {\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed));\n    }" if (parenthesized_expression "(reloc_view_size != reloc_count)" ( (binary_expression "reloc_view_size != reloc_count" identifier != identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed));\n    }" { comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),0x3e2,\n                          (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;) }))) (return_statement "return;" return ;) })) (expression_statement "puVar13 = (relinfo->rr->reloc_strategies_).\n            super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;" (field_expression "puVar13 = (relinfo->rr->reloc_strategies_).\n            super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start" (field_expression "puVar13 = (relinfo->rr->reloc_strategies_).\n            super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl" (binary_expression "puVar13 = (relinfo->rr->reloc_strategies_).\n            super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_" (binary_expression "puVar13 = (relinfo->rr->reloc_strategies_).\n            super__Vector_base<unsigned_char,_std::allocator<unsigned_char" (assignment_expression "puVar13 = (relinfo->rr->reloc_strategies_).\n            super__Vector_base<unsigned_char" identifier = (binary_expression "(relinfo->rr->reloc_strategies_).\n            super__Vector_base<unsigned_char" (field_expression "(relinfo->rr->reloc_strategies_).\n            super__Vector_base" (parenthesized_expression "(relinfo->rr->reloc_strategies_)" ( (field_expression "relinfo->rr->reloc_strategies_" (field_expression "relinfo->rr" identifier -> field_identifier) -> field_identifier) )) . field_identifier) < identifier)) (ERROR ",_std::allocator" , identifier : : identifier) < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((relinfo->rr->reloc_strategies_).\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish != puVar13\n     ) {\n    uVar15 = 0;\n    local_50 = (int *)reloc_view;\n    do {\n      bVar2 = puVar13[uVar15];\n      uVar12 = (uint)bVar2;\n      if (uVar12 != 8) {\n        if (uVar12 == 9) {\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }\n      }\n      if (reloc_count == uVar15 + 1) {\n        reloc_count = (int)local_50 - (int)reloc_view;\n        goto LAB_00092821;\n      }\n      uVar15 = uVar15 + 1;\n      prelocs = (uchar *)((int)prelocs + 0xc);\n      puVar13 = (relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    } while (uVar15 < (uint)((int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13));\n  }" if (parenthesized_expression "((relinfo->rr->reloc_strategies_).\n      super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_finish != puVar13\n     )" ( (ERROR "(relinfo->rr->reloc_strategies_).\n      super__Vector_base<unsigned_char,_std::" (comma_expression "(relinfo->rr->reloc_strategies_).\n      super__Vector_base<unsigned_char,_std" (binary_expression "(relinfo->rr->reloc_strategies_).\n      super__Vector_base<unsigned_char" (field_expression "(relinfo->rr->reloc_strategies_).\n      super__Vector_base" (parenthesized_expression "(relinfo->rr->reloc_strategies_)" ( (field_expression "relinfo->rr->reloc_strategies_" (field_expression "relinfo->rr" identifier -> field_identifier) -> field_identifier) )) . field_identifier) < identifier) , identifier) : :) (binary_expression "allocator<unsigned_char>_>._M_impl._M_finish != puVar13" (field_expression "allocator<unsigned_char>_>._M_impl._M_finish" (field_expression "allocator<unsigned_char>_>._M_impl" (binary_expression "allocator<unsigned_char>_" (binary_expression "allocator<unsigned_char" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) != identifier) )) (compound_statement "{\n    uVar15 = 0;\n    local_50 = (int *)reloc_view;\n    do {\n      bVar2 = puVar13[uVar15];\n      uVar12 = (uint)bVar2;\n      if (uVar12 != 8) {\n        if (uVar12 == 9) {\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }\n      }\n      if (reloc_count == uVar15 + 1) {\n        reloc_count = (int)local_50 - (int)reloc_view;\n        goto LAB_00092821;\n      }\n      uVar15 = uVar15 + 1;\n      prelocs = (uchar *)((int)prelocs + 0xc);\n      puVar13 = (relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    } while (uVar15 < (uint)((int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13));\n  }" { (expression_statement "uVar15 = 0;" (assignment_expression "uVar15 = 0" identifier = number_literal) ;) (expression_statement "local_50 = (int *)reloc_view;" (assignment_expression "local_50 = (int *)reloc_view" identifier = (cast_expression "(int *)reloc_view" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n      bVar2 = puVar13[uVar15];\n      uVar12 = (uint)bVar2;\n      if (uVar12 != 8) {\n        if (uVar12 == 9) {\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }\n      }\n      if (reloc_count == uVar15 + 1) {\n        reloc_count = (int)local_50 - (int)reloc_view;\n        goto LAB_00092821;\n      }\n      uVar15 = uVar15 + 1;\n      prelocs = (uchar *)((int)prelocs + 0xc);\n      puVar13 = (relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    } while (uVar15 < (uint)((int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13));" do (compound_statement "{\n      bVar2 = puVar13[uVar15];\n      uVar12 = (uint)bVar2;\n      if (uVar12 != 8) {\n        if (uVar12 == 9) {\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }\n      }\n      if (reloc_count == uVar15 + 1) {\n        reloc_count = (int)local_50 - (int)reloc_view;\n        goto LAB_00092821;\n      }\n      uVar15 = uVar15 + 1;\n      prelocs = (uchar *)((int)prelocs + 0xc);\n      puVar13 = (relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>._M_impl._M_start;\n    }" { (expression_statement "bVar2 = puVar13[uVar15];" (assignment_expression "bVar2 = puVar13[uVar15]" identifier = (subscript_expression "puVar13[uVar15]" identifier [ identifier ])) ;) (expression_statement "uVar12 = (uint)bVar2;" (assignment_expression "uVar12 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar12 != 8) {\n        if (uVar12 == 9) {\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }\n      }" if (parenthesized_expression "(uVar12 != 8)" ( (binary_expression "uVar12 != 8" identifier != number_literal) )) (compound_statement "{\n        if (uVar12 == 9) {\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }\n      }" { (if_statement "if (uVar12 == 9) {\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }" if (parenthesized_expression "(uVar12 == 9)" ( (binary_expression "uVar12 == 9" identifier == number_literal) )) (compound_statement "{\n          piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }\n          (**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);\n          local_50 = local_50 + 3;\n        }" { (expression_statement "piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);" (assignment_expression "piVar7 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" * (cast_expression "(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" * (cast_expression "(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI + 4" (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar7 == (int *)0x0) {\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }" if (parenthesized_expression "(piVar7 == (int *)0x0)" ( (binary_expression "piVar7 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n            do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));\n          }" { comment (expression_statement "do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1));" (call_expression "do_gold_unreachable(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1))" identifier (argument_list "(&UNK_003b5c76 + unaff_EDI,0x73,\n                                (char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1))" ( (binary_expression "&UNK_003b5c76 + unaff_EDI" (pointer_expression "&UNK_003b5c76" & identifier) + identifier) , number_literal , (cast_expression "(char *)(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::moneypunct<char,false>::moneypunct + unaff_EDI + 1)" ( (ERROR "std::" identifier : :) (comma_expression "moneypunct<char,false>::moneypunct + unaff_EDI + 1" (binary_expression "moneypunct<char" identifier < identifier) , (binary_expression "false>::moneypunct + unaff_EDI + 1" false > (ERROR "::" : :) (binary_expression "moneypunct + unaff_EDI + 1" (binary_expression "moneypunct + unaff_EDI" identifier + identifier) + number_literal))) ))) ))) ;) })) (expression_statement "(**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50);" (call_expression "(**(code **)(*piVar7 + 200))\n                    (piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50)" (parenthesized_expression "(**(code **)(*piVar7 + 200))" ( (pointer_expression "**(code **)(*piVar7 + 200)" * (pointer_expression "*(code **)(*piVar7 + 200)" * (cast_expression "(code **)(*piVar7 + 200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar7 + 200)" ( (binary_expression "*piVar7 + 200" (pointer_expression "*piVar7" * identifier) + number_literal) ))))) )) (argument_list "(piVar7,relinfo,4,prelocs,uVar15,output_section,offset_in_output_section,view,\n                     view_address,view_size,local_50)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_50 = local_50 + 3;" (assignment_expression "local_50 = local_50 + 3" identifier = (binary_expression "local_50 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }" else (compound_statement "{\n          uVar10 = *(uint *)((int)prelocs + 4) >> 8;\n          if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }\n          iVar5 = *(int *)prelocs;\n          if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }\n          *local_50 = iVar11;\n          local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);\n          if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }\n          local_50[2] = *(int *)((int)prelocs + 8);\n          local_50 = local_50 + 3;\n        }" { (expression_statement "uVar10 = *(uint *)((int)prelocs + 4) >> 8;" (assignment_expression "uVar10 = *(uint *)((int)prelocs + 4) >> 8" identifier = (binary_expression "*(uint *)((int)prelocs + 4) >> 8" (pointer_expression "*(uint *)((int)prelocs + 4)" * (cast_expression "(uint *)((int)prelocs + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prelocs + 4)" ( (binary_expression "(int)prelocs + 4" (cast_expression "(int)prelocs" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) ;) (if_statement "if (uVar10 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }\n          else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }" if (parenthesized_expression "(uVar10 < local_38)" ( (binary_expression "uVar10 < local_38" identifier < identifier) )) (compound_statement "{\n            if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }\n          }" { (if_statement "if (bVar2 == 0) {\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }\n            }" { (if_statement "if (uVar10 == 0) {\n                uVar14 = 0;\n              }\n              else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n                uVar14 = 0;\n              }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }" else (compound_statement "{\n                pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;\n                if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }\n                uVar14 = pSVar6[uVar10].output_symtab_index_;\n                if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }\n              }" { (expression_statement "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start;" (field_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl._M_start" (field_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                         ._M_impl" (binary_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold::Symbol_value<32" (assignment_expression "pSVar6 = (object->local_values_).\n                         super__Vector_base<gold" identifier = (binary_expression "(object->local_values_).\n                         super__Vector_base<gold" (field_expression "(object->local_values_).\n                         super__Vector_base" (parenthesized_expression "(object->local_values_)" ( (field_expression "object->local_values_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }" if (parenthesized_expression "((uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10)" ( (binary_expression "(uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10" (call_expression "(uint)((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4)" ( (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6 >> 4" (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish - (int)pSVar6" (field_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl._M_finish" (field_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                                ._M_impl" (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold::Symbol_value<32" (binary_expression "(int)(object->local_values_).\n                                super__Vector_base<gold" (cast_expression "(int)(object->local_values_).\n                                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->local_values_).\n                                super__Vector_base" (parenthesized_expression "(object->local_values_)" ( (field_expression "object->local_values_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)pSVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));\n                }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1));" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1))" identifier (argument_list "((char *)(unaff_EDI + 0x3bad8e),0x8ca,\n                                      (char *)(unaff_EDI + 0x3c09c1))" ( (cast_expression "(char *)(unaff_EDI + 0x3bad8e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3bad8e)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09c1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09c1)" ( (binary_expression "unaff_EDI + 0x3c09c1" identifier + number_literal) ))) ))) ;) })) (expression_statement "uVar14 = pSVar6[uVar10].output_symtab_index_;" (assignment_expression "uVar14 = pSVar6[uVar10].output_symtab_index_" identifier = (field_expression "pSVar6[uVar10].output_symtab_index_" (subscript_expression "pSVar6[uVar10]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if ((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }" if (parenthesized_expression "((uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff))" ( (binary_expression "(uVar14 == 0 || uVar14 == 0xfffffffe) || (uVar14 == 0xffffffff)" (parenthesized_expression "(uVar14 == 0 || uVar14 == 0xfffffffe)" ( (binary_expression "uVar14 == 0 || uVar14 == 0xfffffffe" (binary_expression "uVar14 == 0" identifier == number_literal) || (binary_expression "uVar14 == 0xfffffffe" identifier == number_literal)) )) || (parenthesized_expression "(uVar14 == 0xffffffff)" ( (binary_expression "uVar14 == 0xffffffff" identifier == number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );\n                }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     );" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     )" identifier (argument_list "((char *)(unaff_EDI + 0x3bad8e),0x704,&LAB_003c09ad + unaff_EDI\n                                     )" ( (cast_expression "(char *)(unaff_EDI + 0x3bad8e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3bad8e)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) ))) , number_literal , (binary_expression "&LAB_003c09ad + unaff_EDI" (pointer_expression "&LAB_003c09ad" & identifier) + identifier) ))) ;) })) }))) }) (else_clause "else {\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }" else (compound_statement "{\n              if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;\n              if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }\n              uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;\n              if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];\n              if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }\n              if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }\n              uVar14 = local_48->symtab_index_;\n              if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }\n            }" { (if_statement "if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }" if (parenthesized_expression "(7 < bVar2)" ( (binary_expression "7 < bVar2" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }" { comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),0x367,\n                                    (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;) })) (expression_statement "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start;" (field_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl._M_start" (field_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                       ._M_impl" (binary_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold::Symbol_value<32" (assignment_expression "pSVar6 = (object->local_values_).\n                       super__Vector_base<gold" identifier = (binary_expression "(object->local_values_).\n                       super__Vector_base<gold" (field_expression "(object->local_values_).\n                       super__Vector_base" (parenthesized_expression "(object->local_values_)" ( (field_expression "object->local_values_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }" if (parenthesized_expression "((uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10)" ( (binary_expression "(uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= uVar10" (call_expression "(uint)((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4)" ( (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6 >> 4" (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish - (int)pSVar6" (field_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl._M_finish" (field_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                              ._M_impl" (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold::Symbol_value<32" (binary_expression "(int)(object->local_values_).\n                              super__Vector_base<gold" (cast_expression "(int)(object->local_values_).\n                              super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->local_values_).\n                              super__Vector_base" (parenthesized_expression "(object->local_values_)" ( (field_expression "object->local_values_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)pSVar6" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));\n              }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991));" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991))" identifier (argument_list "((char *)(unaff_EDI + 0x3bad8e),0x8db,\n                                    (char *)(unaff_EDI + 0x3c0991))" ( (cast_expression "(char *)(unaff_EDI + 0x3bad8e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3bad8e)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c0991)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c0991)" ( (binary_expression "unaff_EDI + 0x3c0991" identifier + number_literal) ))) ))) ;) })) (expression_statement "uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff;" (assignment_expression "uVar14 = *(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff" identifier = (binary_expression "*(uint *)&pSVar6[uVar10].field_0x8 & 0x7ffffff" (pointer_expression "*(uint *)&pSVar6[uVar10].field_0x8" * (cast_expression "(uint *)&pSVar6[uVar10].field_0x8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pSVar6[uVar10].field_0x8" & (field_expression "pSVar6[uVar10].field_0x8" (subscript_expression "pSVar6[uVar10]" identifier [ identifier ]) . field_identifier)))) & number_literal)) ;) (if_statement "if ((pSVar6[uVar10].field_0xb & 8) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }" if (parenthesized_expression "((pSVar6[uVar10].field_0xb & 8) == 0)" ( (binary_expression "(pSVar6[uVar10].field_0xb & 8) == 0" (parenthesized_expression "(pSVar6[uVar10].field_0xb & 8)" ( (binary_expression "pSVar6[uVar10].field_0xb & 8" (field_expression "pSVar6[uVar10].field_0xb" (subscript_expression "pSVar6[uVar10]" identifier [ identifier ]) . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }" { comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),0x35e,\n                                    (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;) })) (expression_statement "p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18];" (assignment_expression "p_Var4 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18]" identifier = (subscript_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object[0x18]" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.\n                       _vptr_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.super_Object" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) [ number_literal ])) ;) (if_statement "if (p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)) {\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }\n              else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }" if (parenthesized_expression "(p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7))" ( (binary_expression "p_Var4 == (_func_int_varargs *)(unaff_EDI + -0x210a7)" identifier == (cast_expression "(_func_int_varargs *)(unaff_EDI + -0x210a7)" ( (type_descriptor "_func_int_varargs *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0x210a7)" ( (binary_expression "unaff_EDI + -0x210a7" identifier + number_literal) )))) )) (compound_statement "{\n                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;\n                if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }\n                local_48 = ppOVar8[uVar14];\n              }" { (expression_statement "ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start;" (field_expression "ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl._M_start" (field_expression "ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                          ._M_impl" (binary_expression "ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold::Output_section*,_std" (assignment_expression "ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold" identifier = (binary_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base<gold" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.\n                          super__Vector_base" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier) < identifier)) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }" if (parenthesized_expression "((uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14)" ( (binary_expression "(uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= uVar14" (call_expression "(uint)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2)" ( (binary_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8 >> 2" (binary_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish - (int)ppOVar8" (field_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl._M_finish" (field_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_>\n                                ._M_impl" (binary_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold::Output_section*>_" (binary_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std::allocator<gold" (binary_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold::Output_section*,_std" (binary_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base<gold" (cast_expression "(int)(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_.\n                                super__Vector_base" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj.\n                                output_sections_" (field_expression "(object->super_Sized_relobj<32,_false>).super_Relobj" (parenthesized_expression "(object->super_Sized_relobj<32,_false>)" ( (comma_expression "object->super_Sized_relobj<32,_false" (binary_expression "object->super_Sized_relobj<32" (field_expression "object->super_Sized_relobj" identifier -> field_identifier) < number_literal) , identifier) (ERROR ">" >) )) . field_identifier) . field_identifier) . field_identifier)) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Output_section" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppOVar8" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));\n                }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d));" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d))" identifier (argument_list "((char *)(unaff_EDI + 0x3bad8e),0x5c8,\n                                      (char *)(unaff_EDI + 0x3c097d))" ( (cast_expression "(char *)(unaff_EDI + 0x3bad8e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3bad8e)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c097d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c097d)" ( (binary_expression "unaff_EDI + 0x3c097d" identifier + number_literal) ))) ))) ;) })) (expression_statement "local_48 = ppOVar8[uVar14];" (assignment_expression "local_48 = ppOVar8[uVar14]" identifier = (subscript_expression "ppOVar8[uVar14]" identifier [ identifier ])) ;) }) (else_clause "else {\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }" else (compound_statement "{\n                local_48 = (Output_section *)(*p_Var4)(object,uVar14);\n              }" { (expression_statement "local_48 = (Output_section *)(*p_Var4)(object,uVar14);" (assignment_expression "local_48 = (Output_section *)(*p_Var4)(object,uVar14)" identifier = (cast_expression "(Output_section *)(*p_Var4)(object,uVar14)" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*p_Var4)(object,uVar14)" (parenthesized_expression "(*p_Var4)" ( (pointer_expression "*p_Var4" * identifier) )) (argument_list "(object,uVar14)" ( identifier , identifier ))))) ;) }))) (if_statement "if (local_48 == (Output_section *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }" if (parenthesized_expression "(local_48 == (Output_section *)0x0)" ( (binary_expression "local_48 == (Output_section *)0x0" identifier == (cast_expression "(Output_section *)0x0" ( (type_descriptor "Output_section *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }" { comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),0x360,\n                                    (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;) })) (if_statement "if ((local_48->field_0x90 & 1) == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }" if (parenthesized_expression "((local_48->field_0x90 & 1) == 0)" ( (binary_expression "(local_48->field_0x90 & 1) == 0" (parenthesized_expression "(local_48->field_0x90 & 1)" ( (binary_expression "local_48->field_0x90 & 1" (field_expression "local_48->field_0x90" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));\n              }" { comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),0x361,\n                                    (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;) })) (expression_statement "uVar14 = local_48->symtab_index_;" (assignment_expression "uVar14 = local_48->symtab_index_" identifier = (field_expression "local_48->symtab_index_" identifier -> field_identifier)) ;) (if_statement "if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));\n              }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d));" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d))" identifier (argument_list "((char *)(unaff_EDI + 0x3bad66),0xd81,\n                                    (char *)(unaff_EDI + 0x3c096d))" ( (cast_expression "(char *)(unaff_EDI + 0x3bad66)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3bad66)" ( (binary_expression "unaff_EDI + 0x3bad66" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c096d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c096d)" ( (binary_expression "unaff_EDI + 0x3c096d" identifier + number_literal) ))) ))) ;) })) }))) }) (else_clause "else {\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }" else (compound_statement "{\n            if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            uVar14 = uVar10 - object->local_symbol_count_;\n            ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;\n            if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            from = ppSVar9[uVar14];\n            if (from == (Symbol *)0x0) goto LAB_000931c0;\n            if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }\n            uVar14 = from->symtab_index_;\n            if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n          }" { (if_statement "if (uVar10 < object->local_symbol_count_) {\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }" if (parenthesized_expression "(uVar10 < object->local_symbol_count_)" ( (binary_expression "uVar10 < object->local_symbol_count_" identifier < (field_expression "object->local_symbol_count_" identifier -> field_identifier)) )) (compound_statement "{\nLAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }" { (labeled_statement "LAB_000931c0:\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));" statement_identifier : comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),0x36d,\n                                  (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;)) })) (expression_statement "uVar14 = uVar10 - object->local_symbol_count_;" (assignment_expression "uVar14 = uVar10 - object->local_symbol_count_" identifier = (binary_expression "uVar10 - object->local_symbol_count_" identifier - (field_expression "object->local_symbol_count_" identifier -> field_identifier))) ;) (expression_statement "ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start;" (field_expression "ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl.\n                      _M_start" (field_expression "ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>._M_impl" (binary_expression "ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold::Symbol*,_std" (assignment_expression "ppSVar9 = (object->symbols_).\n                      super__Vector_base<gold" identifier = (binary_expression "(object->symbols_).\n                      super__Vector_base<gold" (field_expression "(object->symbols_).\n                      super__Vector_base" (parenthesized_expression "(object->symbols_)" ( (field_expression "object->symbols_" identifier -> field_identifier) )) . field_identifier) < identifier)) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) (if_statement "if ((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }" if (parenthesized_expression "((uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14)" ( (binary_expression "(uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= uVar14" (call_expression "(uint)((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2)" ( (binary_expression "(int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9 >> 2" (binary_expression "(int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish - (int)ppSVar9" (field_expression "(int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl._M_finish" (field_expression "(int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_>.\n                            _M_impl" (binary_expression "(int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold::Symbol*>_" (binary_expression "(int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std::allocator<gold" (binary_expression "(int)(object->symbols_).\n                            super__Vector_base<gold::Symbol*,_std" (binary_expression "(int)(object->symbols_).\n                            super__Vector_base<gold" (cast_expression "(int)(object->symbols_).\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->symbols_).\n                            super__Vector_base" (parenthesized_expression "(object->symbols_)" ( (field_expression "object->symbols_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol" : : identifier) * (ERROR ">" >) identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)ppSVar9" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);\n            }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI);" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI)" identifier (argument_list "((char *)(unaff_EDI + 0x3bad8e),0x8ad,&UNK_003c095d + unaff_EDI)" ( (cast_expression "(char *)(unaff_EDI + 0x3bad8e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3bad8e)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) ))) , number_literal , (binary_expression "&UNK_003c095d + unaff_EDI" (pointer_expression "&UNK_003c095d" & identifier) + identifier) ))) ;) })) (expression_statement "from = ppSVar9[uVar14];" (assignment_expression "from = ppSVar9[uVar14]" identifier = (subscript_expression "ppSVar9[uVar14]" identifier [ identifier ])) ;) (if_statement "if (from == (Symbol *)0x0) goto LAB_000931c0;" if (parenthesized_expression "(from == (Symbol *)0x0)" ( (binary_expression "from == (Symbol *)0x0" identifier == (cast_expression "(Symbol *)0x0" ( (type_descriptor "Symbol *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000931c0;" goto statement_identifier ;)) (if_statement "if ((from->field_0x2a & 0x10) != 0) {\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }" if (parenthesized_expression "((from->field_0x2a & 0x10) != 0)" ( (binary_expression "(from->field_0x2a & 0x10) != 0" (parenthesized_expression "(from->field_0x2a & 0x10)" ( (binary_expression "from->field_0x2a & 0x10" (field_expression "from->field_0x2a" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              from = Symbol_table::resolve_forwards(relinfo->symtab,from);\n            }" { (ERROR "from = Symbol_table::" (assignment_expression "from = Symbol_table" identifier = identifier) : :) (expression_statement "resolve_forwards(relinfo->symtab,from);" (call_expression "resolve_forwards(relinfo->symtab,from)" identifier (argument_list "(relinfo->symtab,from)" ( (field_expression "relinfo->symtab" identifier -> field_identifier) , identifier ))) ;) })) (expression_statement "uVar14 = from->symtab_index_;" (assignment_expression "uVar14 = from->symtab_index_" identifier = (field_expression "from->symtab_index_" identifier -> field_identifier)) ;) (if_statement "if (uVar14 == 0) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }" { comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),0x371,\n                                  (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;) })) }))) (expression_statement "iVar5 = *(int *)prelocs;" (assignment_expression "iVar5 = *(int *)prelocs" identifier = (pointer_expression "*(int *)prelocs" * (cast_expression "(int *)prelocs" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (offset_in_output_section == 0xffffffff) {\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }\n          else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }" if (parenthesized_expression "(offset_in_output_section == 0xffffffff)" ( (binary_expression "offset_in_output_section == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n            iVar11 = Output_section::output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);\n            if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n            if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }\n          }" { (ERROR "iVar11 = Output_section::" (assignment_expression "iVar11 = Output_section" identifier = identifier) : :) (expression_statement "output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5);" (call_expression "output_offset\n                               (output_section,(Relobj *)object,relinfo->data_shndx,iVar5)" identifier (argument_list "(output_section,(Relobj *)object,relinfo->data_shndx,iVar5)" ( identifier , (cast_expression "(Relobj *)object" ( (type_descriptor "Relobj *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (field_expression "relinfo->data_shndx" identifier -> field_identifier) , identifier ))) ;) (if_statement "if (iVar11 == -1) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }" if (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }" { comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),899,\n                                  (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;) })) (if_statement "if (cVar1 == '\0') {\n              iVar11 = view_address + iVar11;\n            }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar11 = view_address + iVar11;\n            }" { (expression_statement "iVar11 = view_address + iVar11;" (assignment_expression "iVar11 = view_address + iVar11" identifier = (binary_expression "view_address + iVar11" identifier + identifier)) ;) })) }) (else_clause "else {\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }" else (compound_statement "{\n            iVar11 = view_address + iVar5;\n            if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }\n          }" { (expression_statement "iVar11 = view_address + iVar5;" (assignment_expression "iVar11 = view_address + iVar5" identifier = (binary_expression "view_address + iVar5" identifier + identifier)) ;) (if_statement "if (cVar1 != '\0') {\n              iVar11 = offset_in_output_section + iVar5;\n            }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar11 = offset_in_output_section + iVar5;\n            }" { (expression_statement "iVar11 = offset_in_output_section + iVar5;" (assignment_expression "iVar11 = offset_in_output_section + iVar5" identifier = (binary_expression "offset_in_output_section + iVar5" identifier + identifier)) ;) })) }))) (expression_statement "*local_50 = iVar11;" (assignment_expression "*local_50 = iVar11" (pointer_expression "*local_50" * identifier) = identifier) ;) (expression_statement "local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4);" (assignment_expression "local_50[1] = uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4)" (subscript_expression "local_50[1]" identifier [ number_literal ]) = (binary_expression "uVar14 * 0x100 + (uint)*(byte *)((int)prelocs + 4)" (binary_expression "uVar14 * 0x100" identifier * number_literal) + (binary_expression "(uint)*(byte *)((int)prelocs + 4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)((int)prelocs + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prelocs + 4)" ( (binary_expression "(int)prelocs + 4" (cast_expression "(int)prelocs" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (if_statement "if (uVar12 != 0) {\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n            if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }\n            if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }\n                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();\n            return;\n          }" { (if_statement "if ((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }" if (parenthesized_expression "((uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10)" ( (binary_expression "(uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4) <= uVar10" (call_expression "(uint)((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4)" ( (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start >> 4" (field_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_start" (field_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base<gold" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish -\n                       (int)(object->local_values_).\n                            super__Vector_base" (field_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl._M_finish" (field_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_>\n                            ._M_impl" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_>_" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32>_" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold::Symbol_value<32" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std::allocator<gold" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32>,_std" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold::Symbol_value<32" (binary_expression "(int)(object->local_values_).\n                            super__Vector_base<gold" (cast_expression "(int)(object->local_values_).\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->local_values_).\n                            super__Vector_base" (parenthesized_expression "(object->local_values_)" ( (field_expression "object->local_values_" identifier -> field_identifier) )) . field_identifier)) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)(object->local_values_).\n                            super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(object->local_values_).\n                            super__Vector_base" (parenthesized_expression "(object->local_values_)" ( (field_expression "object->local_values_" identifier -> field_identifier) )) . field_identifier))) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > (ERROR "," ,) identifier) (ERROR "::allocator" : : identifier) < identifier) (ERROR "::Symbol_value" : : identifier) < number_literal) > identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));\n            }" { comment (expression_statement "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d));" (call_expression "do_gold_unreachable((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d))" identifier (argument_list "((char *)(unaff_EDI + 0x3bad8e),0x8c1,\n                                  (char *)(unaff_EDI + 0x3c094d))" ( (cast_expression "(char *)(unaff_EDI + 0x3bad8e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3bad8e)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c094d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c094d)" ( (binary_expression "unaff_EDI + 0x3c094d" identifier + number_literal) ))) ))) ;) })) (if_statement "if (7 < bVar2) {\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }" if (parenthesized_expression "(7 < bVar2)" ( (binary_expression "7 < bVar2" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));\n            }" { comment (expression_statement "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed));" (call_expression "do_gold_unreachable((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed))" identifier (argument_list "((char *)(std::ostream::ostream + unaff_EDI + 2),0x3da,\n                                  (char *)(unaff_EDI + 0x3c09ed))" ( (cast_expression "(char *)(std::ostream::ostream + unaff_EDI + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(std::ostream::ostream + unaff_EDI + 2)" ( (ERROR "std::ostream::" identifier : : identifier : :) (binary_expression "ostream + unaff_EDI + 2" (binary_expression "ostream + unaff_EDI" identifier + identifier) + number_literal) ))) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09ed)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ))) ;) })) comment comment (expression_statement "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))();" (call_expression "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))()" (parenthesized_expression "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)))" ( (pointer_expression "*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4))" * (cast_expression "(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4))" ( (binary_expression "unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)" (binary_expression "unaff_EDI + 0x557a09" identifier + number_literal) + (pointer_expression "*(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x3c15e1 + uVar12 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c15e1 + uVar12 * 4)" ( (binary_expression "unaff_EDI + 0x3c15e1 + uVar12 * 4" (binary_expression "unaff_EDI + 0x3c15e1" identifier + number_literal) + (binary_expression "uVar12 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_50[2] = *(int *)((int)prelocs + 8);" (assignment_expression "local_50[2] = *(int *)((int)prelocs + 8)" (subscript_expression "local_50[2]" identifier [ number_literal ]) = (pointer_expression "*(int *)((int)prelocs + 8)" * (cast_expression "(int *)((int)prelocs + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prelocs + 8)" ( (binary_expression "(int)prelocs + 8" (cast_expression "(int)prelocs" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_50 = local_50 + 3;" (assignment_expression "local_50 = local_50 + 3" identifier = (binary_expression "local_50 + 3" identifier + number_literal)) ;) }))) })) (if_statement "if (reloc_count == uVar15 + 1) {\n        reloc_count = (int)local_50 - (int)reloc_view;\n        goto LAB_00092821;\n      }" if (parenthesized_expression "(reloc_count == uVar15 + 1)" ( (binary_expression "reloc_count == uVar15 + 1" identifier == (binary_expression "uVar15 + 1" identifier + number_literal)) )) (compound_statement "{\n        reloc_count = (int)local_50 - (int)reloc_view;\n        goto LAB_00092821;\n      }" { (expression_statement "reloc_count = (int)local_50 - (int)reloc_view;" (assignment_expression "reloc_count = (int)local_50 - (int)reloc_view" identifier = (binary_expression "(int)local_50 - (int)reloc_view" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)reloc_view" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00092821;" goto statement_identifier ;) })) (expression_statement "uVar15 = uVar15 + 1;" (assignment_expression "uVar15 = uVar15 + 1" identifier = (binary_expression "uVar15 + 1" identifier + number_literal)) ;) (expression_statement "prelocs = (uchar *)((int)prelocs + 0xc);" (assignment_expression "prelocs = (uchar *)((int)prelocs + 0xc)" identifier = (cast_expression "(uchar *)((int)prelocs + 0xc)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)prelocs + 0xc)" ( (binary_expression "(int)prelocs + 0xc" (cast_expression "(int)prelocs" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (ERROR "puVar13 = (relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char,_std::" (comma_expression "puVar13 = (relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char,_std" (assignment_expression "puVar13 = (relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char" identifier = (binary_expression "(relinfo->rr->reloc_strategies_).\n                super__Vector_base<unsigned_char" (field_expression "(relinfo->rr->reloc_strategies_).\n                super__Vector_base" (parenthesized_expression "(relinfo->rr->reloc_strategies_)" ( (field_expression "relinfo->rr->reloc_strategies_" (field_expression "relinfo->rr" identifier -> field_identifier) -> field_identifier) )) . field_identifier) < identifier)) , identifier) : :) (expression_statement "allocator<unsigned_char>_>._M_impl._M_start;" (field_expression "allocator<unsigned_char>_>._M_impl._M_start" (field_expression "allocator<unsigned_char>_>._M_impl" (binary_expression "allocator<unsigned_char>_" (binary_expression "allocator<unsigned_char" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) ;) }) while (parenthesized_expression "(uVar15 < (uint)((int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13))" ( (binary_expression "uVar15 < (uint)((int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13)" identifier < (call_expression "(uint)((int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char,_std::allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13)" ( (binary_expression "(int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base<unsigned_char" (cast_expression "(int)(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base" ( (type_descriptor "int" primitive_type) ) (field_expression "(relinfo->rr->reloc_strategies_).\n                                  super__Vector_base" (parenthesized_expression "(relinfo->rr->reloc_strategies_)" ( (field_expression "relinfo->rr->reloc_strategies_" (field_expression "relinfo->rr" identifier -> field_identifier) -> field_identifier) )) . field_identifier)) < identifier) , (ERROR "_std::" identifier : :) (binary_expression "allocator<unsigned_char>_>.\n                                  _M_impl._M_finish - (int)puVar13" (field_expression "allocator<unsigned_char>_>.\n                                  _M_impl._M_finish" (field_expression "allocator<unsigned_char>_>.\n                                  _M_impl" (binary_expression "allocator<unsigned_char>_" (binary_expression "allocator<unsigned_char" identifier < identifier) > identifier) (ERROR ">" >) . field_identifier) . field_identifier) - (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) ;) })) comment (expression_statement "do_gold_unreachable(&UNK_003baecf + unaff_EDI,0x127,(char *)(unaff_EDI + 0x3c09e1));" (call_expression "do_gold_unreachable(&UNK_003baecf + unaff_EDI,0x127,(char *)(unaff_EDI + 0x3c09e1))" identifier (argument_list "(&UNK_003baecf + unaff_EDI,0x127,(char *)(unaff_EDI + 0x3c09e1))" ( (binary_expression "&UNK_003baecf + unaff_EDI" (pointer_expression "&UNK_003baecf" & identifier) + identifier) , number_literal , (cast_expression "(char *)(unaff_EDI + 0x3c09e1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c09e1)" ( (binary_expression "unaff_EDI + 0x3c09e1" identifier + number_literal) ))) ))) ;) (ERROR "}" }))
(translation_unit "void FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)\n\n{\n  char cVar1;\n  byte bVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  int *piVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EDI;\n  uint uVar12;\n  int *local_50;\n  int local_48;\n  uint local_38;\n  \n  FUN_00074f0a();\n  piVar3 = (int *)param_1[2];\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }\n  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar11 == 0) {\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }\n  cVar1 = *(char *)(iVar11 + 0x318d);\n  if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }\n  iVar11 = *(int *)param_1[5];\n  if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }\n                    \n  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);\n}\n\n" (function_definition "void FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)\n\n{\n  char cVar1;\n  byte bVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  int *piVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EDI;\n  uint uVar12;\n  int *local_50;\n  int local_48;\n  uint local_38;\n  \n  FUN_00074f0a();\n  piVar3 = (int *)param_1[2];\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }\n  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar11 == 0) {\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }\n  cVar1 = *(char *)(iVar11 + 0x318d);\n  if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }\n  iVar11 = *(int *)param_1[5];\n  if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }\n                    \n  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);\n}" primitive_type (function_declarator "FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)" identifier (parameter_list "(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "undefined4 param_8" type_identifier identifier) , (parameter_declaration "int *param_9" primitive_type (pointer_declarator "*param_9" * identifier)) , (parameter_declaration "int param_10" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  int *piVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EDI;\n  uint uVar12;\n  int *local_50;\n  int local_48;\n  uint local_38;\n  \n  FUN_00074f0a();\n  piVar3 = (int *)param_1[2];\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }\n  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar11 == 0) {\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }\n  cVar1 = *(char *)(iVar11 + 0x318d);\n  if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }\n  iVar11 = *(int *)param_1[5];\n  if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }\n                    \n  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int *piVar6;" primitive_type (pointer_declarator "*piVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int unaff_EDI;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int *local_50;" primitive_type (pointer_declarator "*local_50" * identifier) ;) (declaration "int local_48;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar3 = (int *)param_1[2];" (assignment_expression "piVar3 = (int *)param_1[2]" identifier = (cast_expression "(int *)param_1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0x8c);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0x8c)" identifier = (pointer_expression "*(code **)(*piVar3 + 0x8c)" * (cast_expression "(code **)(*piVar3 + 0x8c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x8c)" ( (binary_expression "*piVar3 + 0x8c" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) ;) (if_statement "if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }" if (parenthesized_expression "(pcVar4 == (code *)(unaff_EDI + -0x218b7))" ( (binary_expression "pcVar4 == (code *)(unaff_EDI + -0x218b7)" identifier == (cast_expression "(code *)(unaff_EDI + -0x218b7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0x218b7)" ( (binary_expression "unaff_EDI + -0x218b7" identifier + number_literal) )))) )) (compound_statement "{\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }" { (expression_statement "local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);" (assignment_expression "local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3)" identifier = (call_expression "(**(code **)(*piVar3 + 0xbc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xbc))" ( (pointer_expression "**(code **)(*piVar3 + 0xbc)" * (pointer_expression "*(code **)(*piVar3 + 0xbc)" * (cast_expression "(code **)(*piVar3 + 0xbc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0xbc)" ( (binary_expression "*piVar3 + 0xbc" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier )))) ;) }) (else_clause "else {\n    local_38 = (*pcVar4)(piVar3);\n  }" else (compound_statement "{\n    local_38 = (*pcVar4)(piVar3);\n  }" { (expression_statement "local_38 = (*pcVar4)(piVar3);" (assignment_expression "local_38 = (*pcVar4)(piVar3)" identifier = (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(piVar3)" ( identifier )))) ;) }))) (expression_statement "iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);" (assignment_expression "iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" identifier = (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" * (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" ( (binary_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" * (cast_expression "(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI + 4" (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);" (call_expression "FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0)" identifier (argument_list "(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0)" ( (binary_expression "unaff_EDI + 0x3b5c76" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c0d41" identifier + number_literal) , number_literal ))) ;) })) (expression_statement "cVar1 = *(char *)(iVar11 + 0x318d);" (assignment_expression "cVar1 = *(char *)(iVar11 + 0x318d)" identifier = (pointer_expression "*(char *)(iVar11 + 0x318d)" * (cast_expression "(char *)(iVar11 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x318d)" ( (binary_expression "iVar11 + 0x318d" identifier + number_literal) ))))) ;) (if_statement "if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }" { (labeled_statement "LAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" statement_identifier : (if_statement "if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" if (parenthesized_expression "(param_10 != param_3)" ( (binary_expression "param_10 != param_3" identifier != identifier) )) (compound_statement "{\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) , identifier ))) ;) }))) (return_statement "return;" return ;) })) (expression_statement "iVar11 = *(int *)param_1[5];" (assignment_expression "iVar11 = *(int *)param_1[5]" identifier = (pointer_expression "*(int *)param_1[5]" * (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])))) ;) (if_statement "if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }" if (parenthesized_expression "(((int *)param_1[5])[1] != iVar11)" ( (binary_expression "((int *)param_1[5])[1] != iVar11" (subscript_expression "((int *)param_1[5])[1]" (parenthesized_expression "((int *)param_1[5])" ( (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])) )) [ number_literal ]) != identifier) )) (compound_statement "{\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "local_50 = param_9;" (assignment_expression "local_50 = param_9" identifier = identifier) ;) (do_statement "do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));" do (compound_statement "{\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    }" { (expression_statement "bVar2 = *(byte *)(iVar11 + uVar12);" (assignment_expression "bVar2 = *(byte *)(iVar11 + uVar12)" identifier = (pointer_expression "*(byte *)(iVar11 + uVar12)" * (cast_expression "(byte *)(iVar11 + uVar12)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + uVar12)" ( (binary_expression "iVar11 + uVar12" identifier + identifier) ))))) ;) (expression_statement "uVar10 = (uint)bVar2;" (assignment_expression "uVar10 = (uint)bVar2" identifier = (cast_expression "(uint)bVar2" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }" if (parenthesized_expression "(uVar10 != 8)" ( (binary_expression "uVar10 != 8" identifier != number_literal) )) (compound_statement "{\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }" { (if_statement "if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" if (parenthesized_expression "(uVar10 == 9)" ( (binary_expression "uVar10 == 9" identifier == number_literal) )) (compound_statement "{\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }" { (expression_statement "piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);" (assignment_expression "piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" identifier = (pointer_expression "*(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" * (cast_expression "(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" ( (binary_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" * (cast_expression "(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(BYTE_ARRAY_005581cd + unaff_EDI + 4)" ( (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI + 4" (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI" identifier + identifier) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }" if (parenthesized_expression "(piVar6 == (int *)0x0)" ( (binary_expression "piVar6 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1)" identifier (argument_list "(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1)" ( (binary_expression "unaff_EDI + 0x3b5c76" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09d1" identifier + number_literal) ))) ;) })) (expression_statement "(**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);" (call_expression "(**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50)" (parenthesized_expression "(**(code **)(*piVar6 + 200))" ( (pointer_expression "**(code **)(*piVar6 + 200)" * (pointer_expression "*(code **)(*piVar6 + 200)" * (cast_expression "(code **)(*piVar6 + 200)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar6 + 200)" ( (binary_expression "*piVar6 + 200" (pointer_expression "*piVar6" * identifier) + number_literal) ))))) )) (argument_list "(piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50)" ( identifier , identifier , number_literal , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (expression_statement "local_50 = local_50 + 3;" (assignment_expression "local_50 = local_50 + 3" identifier = (binary_expression "local_50 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" else (compound_statement "{\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" { (expression_statement "uVar7 = (uint)param_2[1] >> 8;" (assignment_expression "uVar7 = (uint)param_2[1] >> 8" identifier = (binary_expression "(uint)param_2[1] >> 8" (cast_expression "(uint)param_2[1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[1]" identifier [ number_literal ])) >> number_literal)) ;) (if_statement "if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" if (parenthesized_expression "(uVar7 < local_38)" ( (binary_expression "uVar7 < local_38" identifier < identifier) )) (compound_statement "{\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }" { (if_statement "if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }" { (if_statement "if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" if (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                iVar11 = 0;\n              }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) }) (else_clause "else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" else (compound_statement "{\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" { (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }" if (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" ( (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" ( (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09c1" identifier + number_literal) ))) ;) })) (expression_statement "iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);" (assignment_expression "iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10)" identifier = (pointer_expression "*(int *)(piVar3[0x37] + uVar7 * 0x10)" * (cast_expression "(int *)(piVar3[0x37] + uVar7 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x37] + uVar7 * 0x10)" ( (binary_expression "piVar3[0x37] + uVar7 * 0x10" (subscript_expression "piVar3[0x37]" identifier [ number_literal ]) + (binary_expression "uVar7 * 0x10" identifier * number_literal)) ))))) ;) (if_statement "if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }" if (parenthesized_expression "((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1))" ( (binary_expression "(iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)" (parenthesized_expression "(iVar11 == 0 || iVar11 == -2)" ( (binary_expression "iVar11 == 0 || iVar11 == -2" (binary_expression "iVar11 == 0" identifier == number_literal) || (binary_expression "iVar11 == -2" identifier == number_literal)) )) || (parenthesized_expression "(iVar11 == -1)" ( (binary_expression "iVar11 == -1" identifier == number_literal) ))) )) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "&LAB_003c09ad + unaff_EDI" (pointer_expression "&LAB_003c09ad" & identifier) + identifier) ))) ;) })) }))) }) (else_clause "else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" else (compound_statement "{\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" { (if_statement "if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }" if (parenthesized_expression "(7 < bVar2)" ( (binary_expression "7 < bVar2" number_literal < identifier) )) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }" if (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" ( (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" ( (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c0991" identifier + number_literal) ))) ;) })) (expression_statement "iVar11 = piVar3[0x37] + uVar7 * 0x10;" (assignment_expression "iVar11 = piVar3[0x37] + uVar7 * 0x10" identifier = (binary_expression "piVar3[0x37] + uVar7 * 0x10" (subscript_expression "piVar3[0x37]" identifier [ number_literal ]) + (binary_expression "uVar7 * 0x10" identifier * number_literal))) ;) (expression_statement "uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;" (assignment_expression "uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff" identifier = (binary_expression "*(uint *)(iVar11 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iVar11 + 8)" * (cast_expression "(uint *)(iVar11 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 8)" ( (binary_expression "iVar11 + 8" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }" if (parenthesized_expression "((*(byte *)(iVar11 + 0xb) & 8) == 0)" ( (binary_expression "(*(byte *)(iVar11 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0xb) & 8)" ( (binary_expression "*(byte *)(iVar11 + 0xb) & 8" (pointer_expression "*(byte *)(iVar11 + 0xb)" * (cast_expression "(byte *)(iVar11 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xb)" ( (binary_expression "iVar11 + 0xb" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (if_statement "if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" if (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7))" ( (binary_expression "*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)" (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) )))) == (cast_expression "(code *)(unaff_EDI + -0x210a7)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + -0x210a7)" ( (binary_expression "unaff_EDI + -0x210a7" identifier + number_literal) )))) )) (compound_statement "{\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }" { (if_statement "if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }" if (parenthesized_expression "((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8)" ( (binary_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8" (call_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0xf] - piVar3[0xe] >> 2)" ( (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" identifier [ number_literal ]) - (subscript_expression "piVar3[0xe]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c097d" identifier + number_literal) ))) ;) })) (expression_statement "local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);" (assignment_expression "local_48 = *(int *)(piVar3[0xe] + uVar8 * 4)" identifier = (pointer_expression "*(int *)(piVar3[0xe] + uVar8 * 4)" * (cast_expression "(int *)(piVar3[0xe] + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0xe] + uVar8 * 4)" ( (binary_expression "piVar3[0xe] + uVar8 * 4" (subscript_expression "piVar3[0xe]" identifier [ number_literal ]) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) }) (else_clause "else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" else (compound_statement "{\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" { (expression_statement "local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);" (assignment_expression "local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8)" identifier = (call_expression "(**(code **)(*piVar3 + 0x60))(piVar3,uVar8)" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" ( (pointer_expression "**(code **)(*piVar3 + 0x60)" * (pointer_expression "*(code **)(*piVar3 + 0x60)" * (cast_expression "(code **)(*piVar3 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar3 + 0x60)" ( (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" * identifier) + number_literal) ))))) )) (argument_list "(piVar3,uVar8)" ( identifier , identifier )))) ;) }))) (if_statement "if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (if_statement "if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }" if (parenthesized_expression "((*(byte *)(local_48 + 0x90) & 1) == 0)" ( (binary_expression "(*(byte *)(local_48 + 0x90) & 1) == 0" (parenthesized_expression "(*(byte *)(local_48 + 0x90) & 1)" ( (binary_expression "*(byte *)(local_48 + 0x90) & 1" (pointer_expression "*(byte *)(local_48 + 0x90)" * (cast_expression "(byte *)(local_48 + 0x90)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 0x90)" ( (binary_expression "local_48 + 0x90" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (expression_statement "iVar11 = *(int *)(local_48 + 100);" (assignment_expression "iVar11 = *(int *)(local_48 + 100)" identifier = (pointer_expression "*(int *)(local_48 + 100)" * (cast_expression "(int *)(local_48 + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_48 + 100)" ( (binary_expression "local_48 + 100" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d)" identifier (argument_list "(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d)" ( (binary_expression "unaff_EDI + 0x3bad66" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c096d" identifier + number_literal) ))) ;) })) }))) }) (else_clause "else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" else (compound_statement "{\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" { (if_statement "if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }" if (parenthesized_expression "(uVar7 < (uint)piVar3[0x2c])" ( (binary_expression "uVar7 < (uint)piVar3[0x2c]" identifier < (cast_expression "(uint)piVar3[0x2c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar3[0x2c]" identifier [ number_literal ]))) )) (compound_statement "{\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }" { (labeled_statement "LAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);" statement_identifier : (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;)) })) (expression_statement "uVar8 = uVar7 - piVar3[0x2c];" (assignment_expression "uVar8 = uVar7 - piVar3[0x2c]" identifier = (binary_expression "uVar7 - piVar3[0x2c]" identifier - (subscript_expression "piVar3[0x2c]" identifier [ number_literal ]))) ;) (if_statement "if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }" if (parenthesized_expression "((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8)" ( (binary_expression "(uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8" (call_expression "(uint)(piVar3[0x30] - piVar3[0x2f] >> 2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x30] - piVar3[0x2f] >> 2)" ( (binary_expression "piVar3[0x30] - piVar3[0x2f] >> 2" (binary_expression "piVar3[0x30] - piVar3[0x2f]" (subscript_expression "piVar3[0x30]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x2f]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "&UNK_003c095d + unaff_EDI" (pointer_expression "&UNK_003c095d" & identifier) + identifier) ))) ;) })) (expression_statement "iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);" (assignment_expression "iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4)" identifier = (pointer_expression "*(int *)(piVar3[0x2f] + uVar8 * 4)" * (cast_expression "(int *)(piVar3[0x2f] + uVar8 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar3[0x2f] + uVar8 * 4)" ( (binary_expression "piVar3[0x2f] + uVar8 * 4" (subscript_expression "piVar3[0x2f]" identifier [ number_literal ]) + (binary_expression "uVar8 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (iVar11 == 0) goto LAB_000931c0;" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000931c0;" goto statement_identifier ;)) (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }" if (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 0x10) != 0)" ( (binary_expression "(*(byte *)(iVar11 + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 0x10)" ( (binary_expression "*(byte *)(iVar11 + 0x2a) & 0x10" (pointer_expression "*(byte *)(iVar11 + 0x2a)" * (cast_expression "(byte *)(iVar11 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x2a)" ( (binary_expression "iVar11 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }" { (expression_statement "iVar11 = FUN_0034cd90(*param_1,iVar11);" (assignment_expression "iVar11 = FUN_0034cd90(*param_1,iVar11)" identifier = (call_expression "FUN_0034cd90(*param_1,iVar11)" identifier (argument_list "(*param_1,iVar11)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) })) (expression_statement "iVar11 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar11 + 0x10)" identifier = (pointer_expression "*(int *)(iVar11 + 0x10)" * (cast_expression "(int *)(iVar11 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0x10)" ( (binary_expression "iVar11 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) }))) (expression_statement "iVar5 = *param_2;" (assignment_expression "iVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" if (parenthesized_expression "(param_5 == -1)" ( (binary_expression "param_5 == -1" identifier == number_literal) )) (compound_statement "{\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }" { (expression_statement "iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);" (assignment_expression "iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5)" identifier = (call_expression "FUN_002cda80(param_4,piVar3,param_1[6],iVar5)" identifier (argument_list "(param_4,piVar3,param_1[6],iVar5)" ( identifier , identifier , (subscript_expression "param_1[6]" identifier [ number_literal ]) , identifier )))) ;) (if_statement "if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }" if (parenthesized_expression "(iVar9 == -1)" ( (binary_expression "iVar9 == -1" identifier == number_literal) )) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (if_statement "if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar9 = param_7 + iVar9;\n            }" { (expression_statement "iVar9 = param_7 + iVar9;" (assignment_expression "iVar9 = param_7 + iVar9" identifier = (binary_expression "param_7 + iVar9" identifier + identifier)) ;) })) }) (else_clause "else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" else (compound_statement "{\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" { (expression_statement "iVar9 = param_7 + iVar5;" (assignment_expression "iVar9 = param_7 + iVar5" identifier = (binary_expression "param_7 + iVar5" identifier + identifier)) ;) (if_statement "if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              iVar9 = param_5 + iVar5;\n            }" { (expression_statement "iVar9 = param_5 + iVar5;" (assignment_expression "iVar9 = param_5 + iVar5" identifier = (binary_expression "param_5 + iVar5" identifier + identifier)) ;) })) }))) (expression_statement "*local_50 = iVar9;" (assignment_expression "*local_50 = iVar9" (pointer_expression "*local_50" * identifier) = identifier) ;) (expression_statement "local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);" (assignment_expression "local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1)" (subscript_expression "local_50[1]" identifier [ number_literal ]) = (binary_expression "iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1)" (binary_expression "iVar11 * 0x100" identifier * number_literal) + (binary_expression "(uint)*(byte *)(param_2 + 1)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(param_2 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 1)" ( (binary_expression "param_2 + 1" identifier + number_literal) )))))) ;) (if_statement "if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }" { (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }" if (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" ( (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" ( (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" identifier [ number_literal ]) - (subscript_expression "piVar3[0x37]" identifier [ number_literal ])) >> number_literal) ))) <= identifier) )) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d)" identifier (argument_list "(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d)" ( (binary_expression "unaff_EDI + 0x3bad8e" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c094d" identifier + number_literal) ))) ;) })) (if_statement "if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }" if (parenthesized_expression "(7 < bVar2)" ( (binary_expression "7 < bVar2" number_literal < identifier) )) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }" { (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed)" identifier (argument_list "(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed)" ( (binary_expression "unaff_EDI + 0x3baee2" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09ed" identifier + number_literal) ))) ;) })) (expression_statement "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();" (call_expression "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))()" (parenthesized_expression "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))" ( (pointer_expression "*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" * (cast_expression "(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" ( (binary_expression "unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" (binary_expression "unaff_EDI + 0x557a09" identifier + number_literal) + (pointer_expression "*(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" * (cast_expression "(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_EDI + 0x3c15e1 + uVar10 * 4)" ( (binary_expression "unaff_EDI + 0x3c15e1 + uVar10 * 4" (binary_expression "unaff_EDI + 0x3c15e1" identifier + number_literal) + (binary_expression "uVar10 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_50[2] = param_2[2];" (assignment_expression "local_50[2] = param_2[2]" (subscript_expression "local_50[2]" identifier [ number_literal ]) = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "local_50 = local_50 + 3;" (assignment_expression "local_50 = local_50 + 3" identifier = (binary_expression "local_50 + 3" identifier + number_literal)) ;) }))) })) (if_statement "if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }" if (parenthesized_expression "(param_3 == uVar12 + 1)" ( (binary_expression "param_3 == uVar12 + 1" identifier == (binary_expression "uVar12 + 1" identifier + number_literal)) )) (compound_statement "{\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }" { (expression_statement "param_3 = (int)local_50 - (int)param_9;" (assignment_expression "param_3 = (int)local_50 - (int)param_9" identifier = (binary_expression "(int)local_50 - (int)param_9" (cast_expression "(int)local_50" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (goto_statement "goto LAB_00092821;" goto statement_identifier ;) })) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 3;" (assignment_expression "param_2 = param_2 + 3" identifier = (binary_expression "param_2 + 3" identifier + number_literal)) ;) (expression_statement "iVar11 = *(int *)param_1[5];" (assignment_expression "iVar11 = *(int *)param_1[5]" identifier = (pointer_expression "*(int *)param_1[5]" * (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])))) ;) }) while (parenthesized_expression "(uVar12 < (uint)(((int *)param_1[5])[1] - iVar11))" ( (binary_expression "uVar12 < (uint)(((int *)param_1[5])[1] - iVar11)" identifier < (call_expression "(uint)(((int *)param_1[5])[1] - iVar11)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(((int *)param_1[5])[1] - iVar11)" ( (binary_expression "((int *)param_1[5])[1] - iVar11" (subscript_expression "((int *)param_1[5])[1]" (parenthesized_expression "((int *)param_1[5])" ( (cast_expression "(int *)param_1[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[5]" identifier [ number_literal ])) )) [ number_literal ]) - identifier) )))) )) ;) })) (expression_statement "FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1)" identifier (argument_list "(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1)" ( (binary_expression "unaff_EDI + 0x3baecf" identifier + number_literal) , number_literal , (binary_expression "unaff_EDI + 0x3c09e1" identifier + number_literal) ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) , IDENT ))) ;) }))) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) ))) ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression (pointer_expression & IDENT) + IDENT) ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT * LIT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - (subscript_expression IDENT [ LIT ])) >> LIT) ))) <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) - IDENT) )))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) })))
(function_definition "void FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)\n\n{\n  char cVar1;\n  byte bVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  int *piVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EDI;\n  uint uVar12;\n  int *local_50;\n  int local_48;\n  uint local_38;\n  \n  FUN_00074f0a();\n  piVar3 = (int *)param_1[2];\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }\n  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar11 == 0) {\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }\n  cVar1 = *(char *)(iVar11 + 0x318d);\n  if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }\n  iVar11 = *(int *)param_1[5];\n  if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }\n                    \n  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);\n}" (primitive_type "void") (function_declarator "FUN_000925f0(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)" (identifier "FUN_000925f0") (parameter_list "(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,\n                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "undefined4 param_8" (type_identifier "undefined4") (identifier "param_8")) (, ",") (parameter_declaration "int *param_9" (primitive_type "int") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) (, ",") (parameter_declaration "int param_10" (primitive_type "int") (identifier "param_10")) () ")"))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  int *piVar3;\n  code *pcVar4;\n  int iVar5;\n  int *piVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int unaff_EDI;\n  uint uVar12;\n  int *local_50;\n  int local_48;\n  uint local_38;\n  \n  FUN_00074f0a();\n  piVar3 = (int *)param_1[2];\n  pcVar4 = *(code **)(*piVar3 + 0x8c);\n  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }\n  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);\n  if (iVar11 == 0) {\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }\n  cVar1 = *(char *)(iVar11 + 0x318d);\n  if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }\n  iVar11 = *(int *)param_1[5];\n  if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }\n                    \n  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int *piVar6;" (primitive_type "int") (pointer_declarator "*piVar6" (* "*") (identifier "piVar6")) (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int unaff_EDI;" (primitive_type "int") (identifier "unaff_EDI") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int *local_50;" (primitive_type "int") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "int local_48;" (primitive_type "int") (identifier "local_48") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (expression_statement "FUN_00074f0a();" (call_expression "FUN_00074f0a()" (identifier "FUN_00074f0a") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3 = (int *)param_1[2];" (assignment_expression "piVar3 = (int *)param_1[2]" (identifier "piVar3") (= "=") (cast_expression "(int *)param_1[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pcVar4 = *(code **)(*piVar3 + 0x8c);" (assignment_expression "pcVar4 = *(code **)(*piVar3 + 0x8c)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(*piVar3 + 0x8c)" (* "*") (cast_expression "(code **)(*piVar3 + 0x8c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0x8c)" (( "(") (binary_expression "*piVar3 + 0x8c" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x8c")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }\n  else {\n    local_38 = (*pcVar4)(piVar3);\n  }" (if "if") (parenthesized_expression "(pcVar4 == (code *)(unaff_EDI + -0x218b7))" (( "(") (binary_expression "pcVar4 == (code *)(unaff_EDI + -0x218b7)" (identifier "pcVar4") (== "==") (cast_expression "(code *)(unaff_EDI + -0x218b7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + -0x218b7)" (( "(") (binary_expression "unaff_EDI + -0x218b7" (identifier "unaff_EDI") (+ "+") (number_literal "-0x218b7")) () ")")))) () ")")) (compound_statement "{\n    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);\n  }" ({ "{") (expression_statement "local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);" (assignment_expression "local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3)" (identifier "local_38") (= "=") (call_expression "(**(code **)(*piVar3 + 0xbc))(piVar3)" (parenthesized_expression "(**(code **)(*piVar3 + 0xbc))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0xbc)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0xbc)" (* "*") (cast_expression "(code **)(*piVar3 + 0xbc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0xbc)" (( "(") (binary_expression "*piVar3 + 0xbc" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0xbc")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    local_38 = (*pcVar4)(piVar3);\n  }" (else "else") (compound_statement "{\n    local_38 = (*pcVar4)(piVar3);\n  }" ({ "{") (expression_statement "local_38 = (*pcVar4)(piVar3);" (assignment_expression "local_38 = (*pcVar4)(piVar3)" (identifier "local_38") (= "=") (call_expression "(*pcVar4)(piVar3)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (} "}")))) (expression_statement "iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);" (assignment_expression "iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" (* "*") (cast_expression "(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8)" (( "(") (binary_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8" (pointer_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_005581cd + unaff_EDI + 4)" (( "(") (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI + 4" (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI" (identifier "BYTE_ARRAY_005581cd") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);\n  }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);" (call_expression "FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0)" (( "(") (binary_expression "unaff_EDI + 0x3b5c76" (identifier "unaff_EDI") (+ "+") (number_literal "0x3b5c76")) (, ",") (number_literal "0x5c") (, ",") (binary_expression "unaff_EDI + 0x3c0d41" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c0d41")) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "cVar1 = *(char *)(iVar11 + 0x318d);" (assignment_expression "cVar1 = *(char *)(iVar11 + 0x318d)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(iVar11 + 0x318d)" (* "*") (cast_expression "(char *)(iVar11 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x318d)" (( "(") (binary_expression "iVar11 + 0x318d" (identifier "iVar11") (+ "+") (number_literal "0x318d")) () ")"))))) (; ";")) (if_statement "if (param_3 == 0) {\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }\n    return;\n  }" ({ "{") (labeled_statement "LAB_00092821:\n    if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" (statement_identifier "LAB_00092821") (: ":") (if_statement "if (param_10 != param_3) {\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" (if "if") (parenthesized_expression "(param_10 != param_3)" (( "(") (binary_expression "param_10 != param_3" (identifier "param_10") (!= "!=") (identifier "param_3")) () ")")) (compound_statement "{\n                    \n      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);\n    }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "0x3e2") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)param_1[5];" (assignment_expression "iVar11 = *(int *)param_1[5]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)param_1[5]" (* "*") (cast_expression "(int *)param_1[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))))) (; ";")) (if_statement "if (((int *)param_1[5])[1] != iVar11) {\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }" (if "if") (parenthesized_expression "(((int *)param_1[5])[1] != iVar11)" (( "(") (binary_expression "((int *)param_1[5])[1] != iVar11" (subscript_expression "((int *)param_1[5])[1]" (parenthesized_expression "((int *)param_1[5])" (( "(") (cast_expression "(int *)param_1[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (identifier "iVar11")) () ")")) (compound_statement "{\n    uVar12 = 0;\n    local_50 = param_9;\n    do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));\n  }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = param_9;" (assignment_expression "local_50 = param_9" (identifier "local_50") (= "=") (identifier "param_9")) (; ";")) (do_statement "do {\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));" (do "do") (compound_statement "{\n      bVar2 = *(byte *)(iVar11 + uVar12);\n      uVar10 = (uint)bVar2;\n      if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }\n      if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }\n      uVar12 = uVar12 + 1;\n      param_2 = param_2 + 3;\n      iVar11 = *(int *)param_1[5];\n    }" ({ "{") (expression_statement "bVar2 = *(byte *)(iVar11 + uVar12);" (assignment_expression "bVar2 = *(byte *)(iVar11 + uVar12)" (identifier "bVar2") (= "=") (pointer_expression "*(byte *)(iVar11 + uVar12)" (* "*") (cast_expression "(byte *)(iVar11 + uVar12)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + uVar12)" (( "(") (binary_expression "iVar11 + uVar12" (identifier "iVar11") (+ "+") (identifier "uVar12")) () ")"))))) (; ";")) (expression_statement "uVar10 = (uint)bVar2;" (assignment_expression "uVar10 = (uint)bVar2" (identifier "uVar10") (= "=") (cast_expression "(uint)bVar2" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar2"))) (; ";")) (if_statement "if (uVar10 != 8) {\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }" (if "if") (parenthesized_expression "(uVar10 != 8)" (( "(") (binary_expression "uVar10 != 8" (identifier "uVar10") (!= "!=") (number_literal "8")) () ")")) (compound_statement "{\n        if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }\n      }" ({ "{") (if_statement "if (uVar10 == 9) {\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }\n        else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" (if "if") (parenthesized_expression "(uVar10 == 9)" (( "(") (binary_expression "uVar10 == 9" (identifier "uVar10") (== "==") (number_literal "9")) () ")")) (compound_statement "{\n          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);\n          if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }\n          (**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);\n          local_50 = local_50 + 3;\n        }" ({ "{") (expression_statement "piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);" (assignment_expression "piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" (identifier "piVar6") (= "=") (pointer_expression "*(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" (* "*") (cast_expression "(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc)" (( "(") (binary_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc" (pointer_expression "*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" (* "*") (cast_expression "(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(BYTE_ARRAY_005581cd + unaff_EDI + 4)" (( "(") (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI + 4" (binary_expression "BYTE_ARRAY_005581cd + unaff_EDI" (identifier "BYTE_ARRAY_005581cd") (+ "+") (identifier "unaff_EDI")) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if (piVar6 == (int *)0x0) {\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }" (if "if") (parenthesized_expression "(piVar6 == (int *)0x0)" (( "(") (binary_expression "piVar6 == (int *)0x0" (identifier "piVar6") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);\n          }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1)" (( "(") (binary_expression "unaff_EDI + 0x3b5c76" (identifier "unaff_EDI") (+ "+") (number_literal "0x3b5c76")) (, ",") (number_literal "0x73") (, ",") (binary_expression "unaff_EDI + 0x3c09d1" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09d1")) () ")"))) (; ";")) (} "}"))) (expression_statement "(**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50);" (call_expression "(**(code **)(*piVar6 + 200))\n                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50)" (parenthesized_expression "(**(code **)(*piVar6 + 200))" (( "(") (pointer_expression "**(code **)(*piVar6 + 200)" (* "*") (pointer_expression "*(code **)(*piVar6 + 200)" (* "*") (cast_expression "(code **)(*piVar6 + 200)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar6 + 200)" (( "(") (binary_expression "*piVar6 + 200" (pointer_expression "*piVar6" (* "*") (identifier "piVar6")) (+ "+") (number_literal "200")) () ")"))))) () ")")) (argument_list "(piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,\n                     local_50)" (( "(") (identifier "piVar6") (, ",") (identifier "param_1") (, ",") (number_literal "4") (, ",") (identifier "param_2") (, ",") (identifier "uVar12") (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "param_7") (, ",") (identifier "param_8") (, ",") (identifier "local_50") () ")"))) (; ";")) (expression_statement "local_50 = local_50 + 3;" (assignment_expression "local_50 = local_50 + 3" (identifier "local_50") (= "=") (binary_expression "local_50 + 3" (identifier "local_50") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" (else "else") (compound_statement "{\n          uVar7 = (uint)param_2[1] >> 8;\n          if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }\n          iVar5 = *param_2;\n          if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }\n          *local_50 = iVar9;\n          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);\n          if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }\n          local_50[2] = param_2[2];\n          local_50 = local_50 + 3;\n        }" ({ "{") (expression_statement "uVar7 = (uint)param_2[1] >> 8;" (assignment_expression "uVar7 = (uint)param_2[1] >> 8" (identifier "uVar7") (= "=") (binary_expression "(uint)param_2[1] >> 8" (cast_expression "(uint)param_2[1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (>> ">>") (number_literal "8"))) (; ";")) (if_statement "if (uVar7 < local_38) {\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }\n          else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" (if "if") (parenthesized_expression "(uVar7 < local_38)" (( "(") (binary_expression "uVar7 < local_38" (identifier "uVar7") (< "<") (identifier "local_38")) () ")")) (compound_statement "{\n            if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }\n          }" ({ "{") (if_statement "if (bVar2 == 0) {\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }\n            else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" (if "if") (parenthesized_expression "(bVar2 == 0)" (( "(") (binary_expression "bVar2 == 0" (identifier "bVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }\n            }" ({ "{") (if_statement "if (uVar7 == 0) {\n                iVar11 = 0;\n              }\n              else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" (if "if") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                iVar11 = 0;\n              }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" (else "else") (compound_statement "{\n                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }\n                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);\n                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }\n              }" ({ "{") (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }" (if "if") (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" (( "(") (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" (( "(") (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" (identifier "piVar3") ([ "[") (number_literal "0x38") (] "]")) (- "-") (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]"))) (>> ">>") (number_literal "4")) () ")"))) (<= "<=") (identifier "uVar7")) () ")")) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);\n                }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1)" (( "(") (binary_expression "unaff_EDI + 0x3bad8e" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bad8e")) (, ",") (number_literal "0x8ca") (, ",") (binary_expression "unaff_EDI + 0x3c09c1" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09c1")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);" (assignment_expression "iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(piVar3[0x37] + uVar7 * 0x10)" (* "*") (cast_expression "(int *)(piVar3[0x37] + uVar7 * 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[0x37] + uVar7 * 0x10)" (( "(") (binary_expression "piVar3[0x37] + uVar7 * 0x10" (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]")) (+ "+") (binary_expression "uVar7 * 0x10" (identifier "uVar7") (* "*") (number_literal "0x10"))) () ")"))))) (; ";")) (if_statement "if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }" (if "if") (parenthesized_expression "((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1))" (( "(") (binary_expression "(iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)" (parenthesized_expression "(iVar11 == 0 || iVar11 == -2)" (( "(") (binary_expression "iVar11 == 0 || iVar11 == -2" (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) (|| "||") (binary_expression "iVar11 == -2" (identifier "iVar11") (== "==") (number_literal "-2"))) () ")")) (|| "||") (parenthesized_expression "(iVar11 == -1)" (( "(") (binary_expression "iVar11 == -1" (identifier "iVar11") (== "==") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);\n                }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI)" (( "(") (binary_expression "unaff_EDI + 0x3bad8e" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bad8e")) (, ",") (number_literal "0x704") (, ",") (binary_expression "&LAB_003c09ad + unaff_EDI" (pointer_expression "&LAB_003c09ad" (& "&") (identifier "LAB_003c09ad")) (+ "+") (identifier "unaff_EDI")) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" (else "else") (compound_statement "{\n              if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }\n              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }\n              iVar11 = piVar3[0x37] + uVar7 * 0x10;\n              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;\n              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }\n              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }\n              if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }\n              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }\n              iVar11 = *(int *)(local_48 + 100);\n              if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }\n            }" ({ "{") (if_statement "if (7 < bVar2) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }" (if "if") (parenthesized_expression "(7 < bVar2)" (( "(") (binary_expression "7 < bVar2" (number_literal "7") (< "<") (identifier "bVar2")) () ")")) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);\n              }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "0x367") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }" (if "if") (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" (( "(") (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" (( "(") (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" (identifier "piVar3") ([ "[") (number_literal "0x38") (] "]")) (- "-") (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]"))) (>> ">>") (number_literal "4")) () ")"))) (<= "<=") (identifier "uVar7")) () ")")) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);\n              }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991)" (( "(") (binary_expression "unaff_EDI + 0x3bad8e" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bad8e")) (, ",") (number_literal "0x8db") (, ",") (binary_expression "unaff_EDI + 0x3c0991" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c0991")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar11 = piVar3[0x37] + uVar7 * 0x10;" (assignment_expression "iVar11 = piVar3[0x37] + uVar7 * 0x10" (identifier "iVar11") (= "=") (binary_expression "piVar3[0x37] + uVar7 * 0x10" (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]")) (+ "+") (binary_expression "uVar7 * 0x10" (identifier "uVar7") (* "*") (number_literal "0x10")))) (; ";")) (expression_statement "uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;" (assignment_expression "uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff" (identifier "uVar8") (= "=") (binary_expression "*(uint *)(iVar11 + 8) & 0x7ffffff" (pointer_expression "*(uint *)(iVar11 + 8)" (* "*") (cast_expression "(uint *)(iVar11 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 8)" (( "(") (binary_expression "iVar11 + 8" (identifier "iVar11") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x7ffffff"))) (; ";")) (if_statement "if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }" (if "if") (parenthesized_expression "((*(byte *)(iVar11 + 0xb) & 8) == 0)" (( "(") (binary_expression "(*(byte *)(iVar11 + 0xb) & 8) == 0" (parenthesized_expression "(*(byte *)(iVar11 + 0xb) & 8)" (( "(") (binary_expression "*(byte *)(iVar11 + 0xb) & 8" (pointer_expression "*(byte *)(iVar11 + 0xb)" (* "*") (cast_expression "(byte *)(iVar11 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xb)" (( "(") (binary_expression "iVar11 + 0xb" (identifier "iVar11") (+ "+") (number_literal "0xb")) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);\n              }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "0x35e") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }\n              else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" (if "if") (parenthesized_expression "(*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7))" (( "(") (binary_expression "*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)" (pointer_expression "*(code **)(*piVar3 + 0x60)" (* "*") (cast_expression "(code **)(*piVar3 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0x60)" (( "(") (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (cast_expression "(code *)(unaff_EDI + -0x210a7)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + -0x210a7)" (( "(") (binary_expression "unaff_EDI + -0x210a7" (identifier "unaff_EDI") (+ "+") (number_literal "-0x210a7")) () ")")))) () ")")) (compound_statement "{\n                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }\n                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);\n              }" ({ "{") (if_statement "if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }" (if "if") (parenthesized_expression "((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8)" (( "(") (binary_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8" (call_expression "(uint)(piVar3[0xf] - piVar3[0xe] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar3[0xf] - piVar3[0xe] >> 2)" (( "(") (binary_expression "piVar3[0xf] - piVar3[0xe] >> 2" (binary_expression "piVar3[0xf] - piVar3[0xe]" (subscript_expression "piVar3[0xf]" (identifier "piVar3") ([ "[") (number_literal "0xf") (] "]")) (- "-") (subscript_expression "piVar3[0xe]" (identifier "piVar3") ([ "[") (number_literal "0xe") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar8")) () ")")) (compound_statement "{\n                    \n                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);\n                }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d)" (( "(") (binary_expression "unaff_EDI + 0x3bad8e" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bad8e")) (, ",") (number_literal "0x5c8") (, ",") (binary_expression "unaff_EDI + 0x3c097d" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c097d")) () ")"))) (; ";")) (} "}"))) (expression_statement "local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);" (assignment_expression "local_48 = *(int *)(piVar3[0xe] + uVar8 * 4)" (identifier "local_48") (= "=") (pointer_expression "*(int *)(piVar3[0xe] + uVar8 * 4)" (* "*") (cast_expression "(int *)(piVar3[0xe] + uVar8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[0xe] + uVar8 * 4)" (( "(") (binary_expression "piVar3[0xe] + uVar8 * 4" (subscript_expression "piVar3[0xe]" (identifier "piVar3") ([ "[") (number_literal "0xe") (] "]")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" (else "else") (compound_statement "{\n                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);\n              }" ({ "{") (expression_statement "local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);" (assignment_expression "local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8)" (identifier "local_48") (= "=") (call_expression "(**(code **)(*piVar3 + 0x60))(piVar3,uVar8)" (parenthesized_expression "(**(code **)(*piVar3 + 0x60))" (( "(") (pointer_expression "**(code **)(*piVar3 + 0x60)" (* "*") (pointer_expression "*(code **)(*piVar3 + 0x60)" (* "*") (cast_expression "(code **)(*piVar3 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar3 + 0x60)" (( "(") (binary_expression "*piVar3 + 0x60" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(piVar3,uVar8)" (( "(") (identifier "piVar3") (, ",") (identifier "uVar8") () ")")))) (; ";")) (} "}")))) (if_statement "if (local_48 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);\n              }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "0x360") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)(local_48 + 0x90) & 1) == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }" (if "if") (parenthesized_expression "((*(byte *)(local_48 + 0x90) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(local_48 + 0x90) & 1) == 0" (parenthesized_expression "(*(byte *)(local_48 + 0x90) & 1)" (( "(") (binary_expression "*(byte *)(local_48 + 0x90) & 1" (pointer_expression "*(byte *)(local_48 + 0x90)" (* "*") (cast_expression "(byte *)(local_48 + 0x90)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_48 + 0x90)" (( "(") (binary_expression "local_48 + 0x90" (identifier "local_48") (+ "+") (number_literal "0x90")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);\n              }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "0x361") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(local_48 + 100);" (assignment_expression "iVar11 = *(int *)(local_48 + 100)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(local_48 + 100)" (* "*") (cast_expression "(int *)(local_48 + 100)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_48 + 100)" (( "(") (binary_expression "local_48 + 100" (identifier "local_48") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);\n              }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d)" (( "(") (binary_expression "unaff_EDI + 0x3bad66" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bad66")) (, ",") (number_literal "0xd81") (, ",") (binary_expression "unaff_EDI + 0x3c096d" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c096d")) () ")"))) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" (else "else") (compound_statement "{\n            if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }\n            uVar8 = uVar7 - piVar3[0x2c];\n            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }\n            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);\n            if (iVar11 == 0) goto LAB_000931c0;\n            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }\n            iVar11 = *(int *)(iVar11 + 0x10);\n            if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }\n          }" ({ "{") (if_statement "if (uVar7 < (uint)piVar3[0x2c]) {\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }" (if "if") (parenthesized_expression "(uVar7 < (uint)piVar3[0x2c])" (( "(") (binary_expression "uVar7 < (uint)piVar3[0x2c]" (identifier "uVar7") (< "<") (cast_expression "(uint)piVar3[0x2c]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar3[0x2c]" (identifier "piVar3") ([ "[") (number_literal "0x2c") (] "]")))) () ")")) (compound_statement "{\nLAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);\n            }" ({ "{") (labeled_statement "LAB_000931c0:\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);" (statement_identifier "LAB_000931c0") (: ":") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "0x36d") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) () ")"))) (; ";"))) (} "}"))) (expression_statement "uVar8 = uVar7 - piVar3[0x2c];" (assignment_expression "uVar8 = uVar7 - piVar3[0x2c]" (identifier "uVar8") (= "=") (binary_expression "uVar7 - piVar3[0x2c]" (identifier "uVar7") (- "-") (subscript_expression "piVar3[0x2c]" (identifier "piVar3") ([ "[") (number_literal "0x2c") (] "]")))) (; ";")) (if_statement "if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }" (if "if") (parenthesized_expression "((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8)" (( "(") (binary_expression "(uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8" (call_expression "(uint)(piVar3[0x30] - piVar3[0x2f] >> 2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar3[0x30] - piVar3[0x2f] >> 2)" (( "(") (binary_expression "piVar3[0x30] - piVar3[0x2f] >> 2" (binary_expression "piVar3[0x30] - piVar3[0x2f]" (subscript_expression "piVar3[0x30]" (identifier "piVar3") ([ "[") (number_literal "0x30") (] "]")) (- "-") (subscript_expression "piVar3[0x2f]" (identifier "piVar3") ([ "[") (number_literal "0x2f") (] "]"))) (>> ">>") (number_literal "2")) () ")"))) (<= "<=") (identifier "uVar8")) () ")")) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);\n            }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI)" (( "(") (binary_expression "unaff_EDI + 0x3bad8e" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bad8e")) (, ",") (number_literal "0x8ad") (, ",") (binary_expression "&UNK_003c095d + unaff_EDI" (pointer_expression "&UNK_003c095d" (& "&") (identifier "UNK_003c095d")) (+ "+") (identifier "unaff_EDI")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);" (assignment_expression "iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(piVar3[0x2f] + uVar8 * 4)" (* "*") (cast_expression "(int *)(piVar3[0x2f] + uVar8 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar3[0x2f] + uVar8 * 4)" (( "(") (binary_expression "piVar3[0x2f] + uVar8 * 4" (subscript_expression "piVar3[0x2f]" (identifier "piVar3") ([ "[") (number_literal "0x2f") (] "]")) (+ "+") (binary_expression "uVar8 * 4" (identifier "uVar8") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) goto LAB_000931c0;" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000931c0;" (goto "goto") (statement_identifier "LAB_000931c0") (; ";"))) (if_statement "if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }" (if "if") (parenthesized_expression "((*(byte *)(iVar11 + 0x2a) & 0x10) != 0)" (( "(") (binary_expression "(*(byte *)(iVar11 + 0x2a) & 0x10) != 0" (parenthesized_expression "(*(byte *)(iVar11 + 0x2a) & 0x10)" (( "(") (binary_expression "*(byte *)(iVar11 + 0x2a) & 0x10" (pointer_expression "*(byte *)(iVar11 + 0x2a)" (* "*") (cast_expression "(byte *)(iVar11 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x2a)" (( "(") (binary_expression "iVar11 + 0x2a" (identifier "iVar11") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar11 = FUN_0034cd90(*param_1,iVar11);\n            }" ({ "{") (expression_statement "iVar11 = FUN_0034cd90(*param_1,iVar11);" (assignment_expression "iVar11 = FUN_0034cd90(*param_1,iVar11)" (identifier "iVar11") (= "=") (call_expression "FUN_0034cd90(*param_1,iVar11)" (identifier "FUN_0034cd90") (argument_list "(*param_1,iVar11)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "iVar11") () ")")))) (; ";")) (} "}"))) (expression_statement "iVar11 = *(int *)(iVar11 + 0x10);" (assignment_expression "iVar11 = *(int *)(iVar11 + 0x10)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(iVar11 + 0x10)" (* "*") (cast_expression "(int *)(iVar11 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0x10)" (( "(") (binary_expression "iVar11 + 0x10" (identifier "iVar11") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if (iVar11 == 0) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);\n            }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "0x371") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar5 = *param_2;" (assignment_expression "iVar5 = *param_2" (identifier "iVar5") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (param_5 == -1) {\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }\n          else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" (if "if") (parenthesized_expression "(param_5 == -1)" (( "(") (binary_expression "param_5 == -1" (identifier "param_5") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);\n            if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }\n            if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }\n          }" ({ "{") (expression_statement "iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);" (assignment_expression "iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5)" (identifier "iVar9") (= "=") (call_expression "FUN_002cda80(param_4,piVar3,param_1[6],iVar5)" (identifier "FUN_002cda80") (argument_list "(param_4,piVar3,param_1[6],iVar5)" (( "(") (identifier "param_4") (, ",") (identifier "piVar3") (, ",") (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (, ",") (identifier "iVar5") () ")")))) (; ";")) (if_statement "if (iVar9 == -1) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }" (if "if") (parenthesized_expression "(iVar9 == -1)" (( "(") (binary_expression "iVar9 == -1" (identifier "iVar9") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);\n            }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "899") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) () ")"))) (; ";")) (} "}"))) (if_statement "if (cVar1 == '\0') {\n              iVar9 = param_7 + iVar9;\n            }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar9 = param_7 + iVar9;\n            }" ({ "{") (expression_statement "iVar9 = param_7 + iVar9;" (assignment_expression "iVar9 = param_7 + iVar9" (identifier "iVar9") (= "=") (binary_expression "param_7 + iVar9" (identifier "param_7") (+ "+") (identifier "iVar9"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" (else "else") (compound_statement "{\n            iVar9 = param_7 + iVar5;\n            if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }\n          }" ({ "{") (expression_statement "iVar9 = param_7 + iVar5;" (assignment_expression "iVar9 = param_7 + iVar5" (identifier "iVar9") (= "=") (binary_expression "param_7 + iVar5" (identifier "param_7") (+ "+") (identifier "iVar5"))) (; ";")) (if_statement "if (cVar1 != '\0') {\n              iVar9 = param_5 + iVar5;\n            }" (if "if") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              iVar9 = param_5 + iVar5;\n            }" ({ "{") (expression_statement "iVar9 = param_5 + iVar5;" (assignment_expression "iVar9 = param_5 + iVar5" (identifier "iVar9") (= "=") (binary_expression "param_5 + iVar5" (identifier "param_5") (+ "+") (identifier "iVar5"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "*local_50 = iVar9;" (assignment_expression "*local_50 = iVar9" (pointer_expression "*local_50" (* "*") (identifier "local_50")) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);" (assignment_expression "local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1)" (subscript_expression "local_50[1]" (identifier "local_50") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1)" (binary_expression "iVar11 * 0x100" (identifier "iVar11") (* "*") (number_literal "0x100")) (+ "+") (binary_expression "(uint)*(byte *)(param_2 + 1)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(param_2 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 1)" (( "(") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1")) () ")")))))) (; ";")) (if_statement "if (uVar10 != 0) {\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }\n            if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }\n                    \n                    \n            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();\n            return;\n          }" ({ "{") (if_statement "if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }" (if "if") (parenthesized_expression "((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7)" (( "(") (binary_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7" (call_expression "(uint)(piVar3[0x38] - piVar3[0x37] >> 4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(piVar3[0x38] - piVar3[0x37] >> 4)" (( "(") (binary_expression "piVar3[0x38] - piVar3[0x37] >> 4" (binary_expression "piVar3[0x38] - piVar3[0x37]" (subscript_expression "piVar3[0x38]" (identifier "piVar3") ([ "[") (number_literal "0x38") (] "]")) (- "-") (subscript_expression "piVar3[0x37]" (identifier "piVar3") ([ "[") (number_literal "0x37") (] "]"))) (>> ">>") (number_literal "4")) () ")"))) (<= "<=") (identifier "uVar7")) () ")")) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);\n            }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);" (call_expression "FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d)" (( "(") (binary_expression "unaff_EDI + 0x3bad8e" (identifier "unaff_EDI") (+ "+") (number_literal "0x3bad8e")) (, ",") (number_literal "0x8c1") (, ",") (binary_expression "unaff_EDI + 0x3c094d" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c094d")) () ")"))) (; ";")) (} "}"))) (if_statement "if (7 < bVar2) {\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }" (if "if") (parenthesized_expression "(7 < bVar2)" (( "(") (binary_expression "7 < bVar2" (number_literal "7") (< "<") (identifier "bVar2")) () ")")) (compound_statement "{\n                    \n              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);\n            }" ({ "{") (expression_statement "FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed)" (( "(") (binary_expression "unaff_EDI + 0x3baee2" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baee2")) (, ",") (number_literal "0x3da") (, ",") (binary_expression "unaff_EDI + 0x3c09ed" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09ed")) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();" (call_expression "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))()" (parenthesized_expression "(*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))" (( "(") (pointer_expression "*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" (* "*") (cast_expression "(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4))" (( "(") (binary_expression "unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" (binary_expression "unaff_EDI + 0x557a09" (identifier "unaff_EDI") (+ "+") (number_literal "0x557a09")) (+ "+") (pointer_expression "*(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" (* "*") (cast_expression "(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(unaff_EDI + 0x3c15e1 + uVar10 * 4)" (( "(") (binary_expression "unaff_EDI + 0x3c15e1 + uVar10 * 4" (binary_expression "unaff_EDI + 0x3c15e1" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c15e1")) (+ "+") (binary_expression "uVar10 * 4" (identifier "uVar10") (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_50[2] = param_2[2];" (assignment_expression "local_50[2] = param_2[2]" (subscript_expression "local_50[2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_50 = local_50 + 3;" (assignment_expression "local_50 = local_50 + 3" (identifier "local_50") (= "=") (binary_expression "local_50 + 3" (identifier "local_50") (+ "+") (number_literal "3"))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (param_3 == uVar12 + 1) {\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }" (if "if") (parenthesized_expression "(param_3 == uVar12 + 1)" (( "(") (binary_expression "param_3 == uVar12 + 1" (identifier "param_3") (== "==") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n        param_3 = (int)local_50 - (int)param_9;\n        goto LAB_00092821;\n      }" ({ "{") (expression_statement "param_3 = (int)local_50 - (int)param_9;" (assignment_expression "param_3 = (int)local_50 - (int)param_9" (identifier "param_3") (= "=") (binary_expression "(int)local_50 - (int)param_9" (cast_expression "(int)local_50" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_50")) (- "-") (cast_expression "(int)param_9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_9")))) (; ";")) (goto_statement "goto LAB_00092821;" (goto "goto") (statement_identifier "LAB_00092821") (; ";")) (} "}"))) (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" (identifier "uVar12") (= "=") (binary_expression "uVar12 + 1" (identifier "uVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2 = param_2 + 3;" (assignment_expression "param_2 = param_2 + 3" (identifier "param_2") (= "=") (binary_expression "param_2 + 3" (identifier "param_2") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar11 = *(int *)param_1[5];" (assignment_expression "iVar11 = *(int *)param_1[5]" (identifier "iVar11") (= "=") (pointer_expression "*(int *)param_1[5]" (* "*") (cast_expression "(int *)param_1[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar12 < (uint)(((int *)param_1[5])[1] - iVar11))" (( "(") (binary_expression "uVar12 < (uint)(((int *)param_1[5])[1] - iVar11)" (identifier "uVar12") (< "<") (call_expression "(uint)(((int *)param_1[5])[1] - iVar11)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(((int *)param_1[5])[1] - iVar11)" (( "(") (binary_expression "((int *)param_1[5])[1] - iVar11" (subscript_expression "((int *)param_1[5])[1]" (parenthesized_expression "((int *)param_1[5])" (( "(") (cast_expression "(int *)param_1[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) () ")")) ([ "[") (number_literal "1") (] "]")) (- "-") (identifier "iVar11")) () ")")))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);" (call_expression "FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1)" (identifier "FUN_002446e0") (argument_list "(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1)" (( "(") (binary_expression "unaff_EDI + 0x3baecf" (identifier "unaff_EDI") (+ "+") (number_literal "0x3baecf")) (, ",") (number_literal "0x127") (, ",") (binary_expression "unaff_EDI + 0x3c09e1" (identifier "unaff_EDI") (+ "+") (number_literal "0x3c09e1")) () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original name: relocate_relocs<32, false, gold::Default_classify_reloc<4, 32, false> > */

void var_23::relocate_relocs<32,_false,_gold::Default_classify_reloc<4,_32,_false>var_12>
               (Relocate_info<32,_false> *relinfo,type_9 *prelocs,size_t var_8,
               type_6 *output_section,Elf_Off var_29,type_9 *view,
               Elf_Addr var_33,section_size_type view_size,type_9 *reloc_view,
               section_size_type var_9)

{
  char var_32;
  type_1 var_22;
  var_1<32,_false> *object;
  type_2 **pp_Var3;
  type_2 *var_3;
  int var_6;
  type_3 pSVar6;
  int *var_16;
  type_3 ppOVar8;
  type_3 ppSVar9;
  type_4 var_20;
  int var_31;
  type_5 *var_27;
  type_4 var_15;
  type_4 var_25;
  int var_4;
  type_4 var_34;
  int *var_19;
  type_6 *var_26;
  type_4 var_21;
  type_3 var_14;
  
  var_2();
  object = relinfo->object;
  pp_Var3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object._vptr_Object;
  var_3 = pp_Var3[0x23];
  if (var_3 == (type_2 *)(var_4 + -0x218b7)) {
    var_21 = (*pp_Var3[0x2f])(object);
  }
  else {
    var_21 = (*var_3)(object);
  }
  var_6 = *(int *)(*(int *)(var_5 + var_4 + 4) + 8);
  if (var_6 == 0) {
                    /* WARNING: Subroutine does not return */
    var_7(&UNK_003b5c76 + var_4,0x5c,&UNK_003c0d41 + var_4);
  }
  var_32 = *(char *)(var_6 + 0x318d);
  if (var_8 == 0) {
LAB_00092821:
    if (var_9 != var_8) {
                    /* WARNING: Subroutine does not return */
      var_7((char *)(std::var_10::var_10 + var_4 + 2),0x3e2,
                          (char *)(var_4 + 0x3c09ed));
    }
    return;
  }
  var_14 = (relinfo->rr->reloc_strategies_).
            super__Vector_base<var_11,var_24::var_13<var_11>var_12>._M_impl._M_start;
  if ((relinfo->rr->reloc_strategies_).
      super__Vector_base<var_11,var_24::var_13<var_11>var_12>._M_impl._M_finish != var_14
     ) {
    var_34 = 0;
    var_19 = (int *)reloc_view;
    do {
      var_22 = var_14[var_34];
      var_15 = (type_4)var_22;
      if (var_15 != 8) {
        if (var_15 == 9) {
          var_16 = *(int **)(*(int *)(var_5 + var_4 + 4) + 0xc);
          if (var_16 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
            var_7(&UNK_003b5c76 + var_4,0x73,
                                (char *)(std::var_17<var_18,false>::var_17 + var_4 + 1));
          }
          (**(type_7 **)(*var_16 + 200))
                    (var_16,relinfo,4,prelocs,var_34,output_section,var_29,view,
                     var_33,view_size,var_19);
          var_19 = var_19 + 3;
        }
        else {
          var_20 = *(type_4 *)((int)prelocs + 4) >> 8;
          if (var_20 < var_21) {
            if (var_22 == 0) {
              if (var_20 == 0) {
                var_25 = 0;
              }
              else {
                pSVar6 = (object->local_values_).
                         super__Vector_base<var_23::Symbol_value<32>,var_24::var_13<var_23::Symbol_value<32>var_12>var_12>
                         ._M_impl._M_start;
                if ((type_4)((int)(object->local_values_).
                                super__Vector_base<var_23::Symbol_value<32>,var_24::var_13<var_23::Symbol_value<32>var_12>var_12>
                                ._M_impl._M_finish - (int)pSVar6 >> 4) <= var_20) {
                    /* WARNING: Subroutine does not return */
                  var_7((char *)(var_4 + 0x3bad8e),0x8ca,
                                      (char *)(var_4 + 0x3c09c1));
                }
                var_25 = pSVar6[var_20].output_symtab_index_;
                if ((var_25 == 0 || var_25 == 0xfffffffe) || (var_25 == 0xffffffff)) {
                    /* WARNING: Subroutine does not return */
                  var_7((char *)(var_4 + 0x3bad8e),0x704,&LAB_003c09ad + var_4
                                     );
                }
              }
            }
            else {
              if (7 < var_22) {
                    /* WARNING: Subroutine does not return */
                var_7((char *)(std::var_10::var_10 + var_4 + 2),0x367,
                                    (char *)(var_4 + 0x3c09ed));
              }
              pSVar6 = (object->local_values_).
                       super__Vector_base<var_23::Symbol_value<32>,var_24::var_13<var_23::Symbol_value<32>var_12>var_12>
                       ._M_impl._M_start;
              if ((type_4)((int)(object->local_values_).
                              super__Vector_base<var_23::Symbol_value<32>,var_24::var_13<var_23::Symbol_value<32>var_12>var_12>
                              ._M_impl._M_finish - (int)pSVar6 >> 4) <= var_20) {
                    /* WARNING: Subroutine does not return */
                var_7((char *)(var_4 + 0x3bad8e),0x8db,
                                    (char *)(var_4 + 0x3c0991));
              }
              var_25 = *(type_4 *)&pSVar6[var_20].field_0x8 & 0x7ffffff;
              if ((pSVar6[var_20].field_0xb & 8) == 0) {
                    /* WARNING: Subroutine does not return */
                var_7((char *)(std::var_10::var_10 + var_4 + 2),0x35e,
                                    (char *)(var_4 + 0x3c09ed));
              }
              var_3 = (object->super_Sized_relobj<32,_false>).super_Relobj.super_Object.
                       _vptr_Object[0x18];
              if (var_3 == (type_2 *)(var_4 + -0x210a7)) {
                ppOVar8 = (object->super_Sized_relobj<32,_false>).super_Relobj.output_sections_.
                          super__Vector_base<var_23::type_6*,var_24::var_13<var_23::type_6*>var_12>
                          ._M_impl._M_start;
                if ((type_4)((int)(object->super_Sized_relobj<32,_false>).super_Relobj.
                                output_sections_.
                                super__Vector_base<var_23::type_6*,var_24::var_13<var_23::type_6*>var_12>
                                ._M_impl._M_finish - (int)ppOVar8 >> 2) <= var_25) {
                    /* WARNING: Subroutine does not return */
                  var_7((char *)(var_4 + 0x3bad8e),0x5c8,
                                      (char *)(var_4 + 0x3c097d));
                }
                var_26 = ppOVar8[var_25];
              }
              else {
                var_26 = (type_6 *)(*var_3)(object,var_25);
              }
              if (var_26 == (type_6 *)0x0) {
                    /* WARNING: Subroutine does not return */
                var_7((char *)(std::var_10::var_10 + var_4 + 2),0x360,
                                    (char *)(var_4 + 0x3c09ed));
              }
              if ((var_26->field_0x90 & 1) == 0) {
                    /* WARNING: Subroutine does not return */
                var_7((char *)(std::var_10::var_10 + var_4 + 2),0x361,
                                    (char *)(var_4 + 0x3c09ed));
              }
              var_25 = var_26->symtab_index_;
              if (var_25 == 0) {
                    /* WARNING: Subroutine does not return */
                var_7((char *)(var_4 + 0x3bad66),0xd81,
                                    (char *)(var_4 + 0x3c096d));
              }
            }
          }
          else {
            if (var_20 < object->local_symbol_count_) {
LAB_000931c0:
                    /* WARNING: Subroutine does not return */
              var_7((char *)(std::var_10::var_10 + var_4 + 2),0x36d,
                                  (char *)(var_4 + 0x3c09ed));
            }
            var_25 = var_20 - object->local_symbol_count_;
            ppSVar9 = (object->symbols_).
                      super__Vector_base<var_23::type_5*,var_24::var_13<var_23::type_5*>var_12>._M_impl.
                      _M_start;
            if ((type_4)((int)(object->symbols_).
                            super__Vector_base<var_23::type_5*,var_24::var_13<var_23::type_5*>var_12>.
                            _M_impl._M_finish - (int)ppSVar9 >> 2) <= var_25) {
                    /* WARNING: Subroutine does not return */
              var_7((char *)(var_4 + 0x3bad8e),0x8ad,&UNK_003c095d + var_4);
            }
            var_27 = ppSVar9[var_25];
            if (var_27 == (type_5 *)0x0) goto LAB_000931c0;
            if ((var_27->field_0x2a & 0x10) != 0) {
              var_27 = Symbol_table::var_28(relinfo->symtab,var_27);
            }
            var_25 = var_27->symtab_index_;
            if (var_25 == 0) {
                    /* WARNING: Subroutine does not return */
              var_7((char *)(std::var_10::var_10 + var_4 + 2),0x371,
                                  (char *)(var_4 + 0x3c09ed));
            }
          }
          var_6 = *(int *)prelocs;
          if (var_29 == 0xffffffff) {
            var_31 = type_6::var_30
                               (output_section,(type_8 *)object,relinfo->data_shndx,var_6);
            if (var_31 == -1) {
                    /* WARNING: Subroutine does not return */
              var_7((char *)(std::var_10::var_10 + var_4 + 2),899,
                                  (char *)(var_4 + 0x3c09ed));
            }
            if (var_32 == '\0') {
              var_31 = var_33 + var_31;
            }
          }
          else {
            var_31 = var_33 + var_6;
            if (var_32 != '\0') {
              var_31 = var_29 + var_6;
            }
          }
          *var_19 = var_31;
          var_19[1] = var_25 * 0x100 + (type_4)*(type_1 *)((int)prelocs + 4);
          if (var_15 != 0) {
            if ((type_4)((int)(object->local_values_).
                            super__Vector_base<var_23::Symbol_value<32>,var_24::var_13<var_23::Symbol_value<32>var_12>var_12>
                            ._M_impl._M_finish -
                       (int)(object->local_values_).
                            super__Vector_base<var_23::Symbol_value<32>,var_24::var_13<var_23::Symbol_value<32>var_12>var_12>
                            ._M_impl._M_start >> 4) <= var_20) {
                    /* WARNING: Subroutine does not return */
              var_7((char *)(var_4 + 0x3bad8e),0x8c1,
                                  (char *)(var_4 + 0x3c094d));
            }
            if (7 < var_22) {
                    /* WARNING: Subroutine does not return */
              var_7((char *)(std::var_10::var_10 + var_4 + 2),0x3da,
                                  (char *)(var_4 + 0x3c09ed));
            }
                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(type_7 *)(var_4 + 0x557a09 + *(int *)(var_4 + 0x3c15e1 + var_15 * 4)))();
            return;
          }
          var_19[2] = *(int *)((int)prelocs + 8);
          var_19 = var_19 + 3;
        }
      }
      if (var_8 == var_34 + 1) {
        var_8 = (int)var_19 - (int)reloc_view;
        goto LAB_00092821;
      }
      var_34 = var_34 + 1;
      prelocs = (type_9 *)((int)prelocs + 0xc);
      var_14 = (relinfo->rr->reloc_strategies_).
                super__Vector_base<var_11,var_24::var_13<var_11>var_12>._M_impl._M_start;
    } while (var_34 < (type_4)((int)(relinfo->rr->reloc_strategies_).
                                  super__Vector_base<var_11,var_24::var_13<var_11>var_12>.
                                  _M_impl._M_finish - (int)var_14));
  }
                    /* WARNING: Subroutine does not return */
  var_7(&UNK_003baecf + var_4,0x127,(char *)(var_4 + 0x3c09e1));
}


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

void MASKED(undefined4 *param_1,int *param_2,int param_3,undefined4 param_4,int param_5,
                 undefined4 param_6,int param_7,undefined4 param_8,int *param_9,int param_10)

{
  char cVar1;
  byte bVar2;
  int *piVar3;
  code *pcVar4;
  int iVar5;
  int *piVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int unaff_EDI;
  uint uVar12;
  int *local_50;
  int local_48;
  uint local_38;
  
  FUN_00074f0a();
  piVar3 = (int *)param_1[2];
  pcVar4 = *(code **)(*piVar3 + 0x8c);
  if (pcVar4 == (code *)(unaff_EDI + -0x218b7)) {
    local_38 = (**(code **)(*piVar3 + 0xbc))(piVar3);
  }
  else {
    local_38 = (*pcVar4)(piVar3);
  }
  iVar11 = *(int *)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 8);
  if (iVar11 == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_002446e0(unaff_EDI + 0x3b5c76,0x5c,unaff_EDI + 0x3c0d41,0);
  }
  cVar1 = *(char *)(iVar11 + 0x318d);
  if (param_3 == 0) {
LAB_00092821:
    if (param_10 != param_3) {
                    /* WARNING: Subroutine does not return */
      FUN_002446e0(unaff_EDI + 0x3baee2,0x3e2,unaff_EDI + 0x3c09ed,param_3);
    }
    return;
  }
  iVar11 = *(int *)param_1[5];
  if (((int *)param_1[5])[1] != iVar11) {
    uVar12 = 0;
    local_50 = param_9;
    do {
      bVar2 = *(byte *)(iVar11 + uVar12);
      uVar10 = (uint)bVar2;
      if (uVar10 != 8) {
        if (uVar10 == 9) {
          piVar6 = *(int **)(*(int *)(BYTE_ARRAY_005581cd + unaff_EDI + 4) + 0xc);
          if (piVar6 == (int *)0x0) {
                    /* WARNING: Subroutine does not return */
            FUN_002446e0(unaff_EDI + 0x3b5c76,0x73,unaff_EDI + 0x3c09d1);
          }
          (**(code **)(*piVar6 + 200))
                    (piVar6,param_1,4,param_2,uVar12,param_4,param_5,param_6,param_7,param_8,
                     local_50);
          local_50 = local_50 + 3;
        }
        else {
          uVar7 = (uint)param_2[1] >> 8;
          if (uVar7 < local_38) {
            if (bVar2 == 0) {
              if (uVar7 == 0) {
                iVar11 = 0;
              }
              else {
                if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ca,unaff_EDI + 0x3c09c1);
                }
                iVar11 = *(int *)(piVar3[0x37] + uVar7 * 0x10);
                if ((iVar11 == 0 || iVar11 == -2) || (iVar11 == -1)) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x704,&LAB_003c09ad + unaff_EDI);
                }
              }
            }
            else {
              if (7 < bVar2) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3baee2,0x367,unaff_EDI + 0x3c09ed);
              }
              if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3bad8e,0x8db,unaff_EDI + 0x3c0991);
              }
              iVar11 = piVar3[0x37] + uVar7 * 0x10;
              uVar8 = *(uint *)(iVar11 + 8) & 0x7ffffff;
              if ((*(byte *)(iVar11 + 0xb) & 8) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3baee2,0x35e,unaff_EDI + 0x3c09ed);
              }
              if (*(code **)(*piVar3 + 0x60) == (code *)(unaff_EDI + -0x210a7)) {
                if ((uint)(piVar3[0xf] - piVar3[0xe] >> 2) <= uVar8) {
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0(unaff_EDI + 0x3bad8e,0x5c8,unaff_EDI + 0x3c097d);
                }
                local_48 = *(int *)(piVar3[0xe] + uVar8 * 4);
              }
              else {
                local_48 = (**(code **)(*piVar3 + 0x60))(piVar3,uVar8);
              }
              if (local_48 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3baee2,0x360,unaff_EDI + 0x3c09ed);
              }
              if ((*(byte *)(local_48 + 0x90) & 1) == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3baee2,0x361,unaff_EDI + 0x3c09ed);
              }
              iVar11 = *(int *)(local_48 + 100);
              if (iVar11 == 0) {
                    /* WARNING: Subroutine does not return */
                FUN_002446e0(unaff_EDI + 0x3bad66,0xd81,unaff_EDI + 0x3c096d);
              }
            }
          }
          else {
            if (uVar7 < (uint)piVar3[0x2c]) {
LAB_000931c0:
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3baee2,0x36d,unaff_EDI + 0x3c09ed);
            }
            uVar8 = uVar7 - piVar3[0x2c];
            if ((uint)(piVar3[0x30] - piVar3[0x2f] >> 2) <= uVar8) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8ad,&UNK_003c095d + unaff_EDI);
            }
            iVar11 = *(int *)(piVar3[0x2f] + uVar8 * 4);
            if (iVar11 == 0) goto LAB_000931c0;
            if ((*(byte *)(iVar11 + 0x2a) & 0x10) != 0) {
              iVar11 = FUN_0034cd90(*param_1,iVar11);
            }
            iVar11 = *(int *)(iVar11 + 0x10);
            if (iVar11 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3baee2,0x371,unaff_EDI + 0x3c09ed);
            }
          }
          iVar5 = *param_2;
          if (param_5 == -1) {
            iVar9 = FUN_002cda80(param_4,piVar3,param_1[6],iVar5);
            if (iVar9 == -1) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3baee2,899,unaff_EDI + 0x3c09ed);
            }
            if (cVar1 == '\0') {
              iVar9 = param_7 + iVar9;
            }
          }
          else {
            iVar9 = param_7 + iVar5;
            if (cVar1 != '\0') {
              iVar9 = param_5 + iVar5;
            }
          }
          *local_50 = iVar9;
          local_50[1] = iVar11 * 0x100 + (uint)*(byte *)(param_2 + 1);
          if (uVar10 != 0) {
            if ((uint)(piVar3[0x38] - piVar3[0x37] >> 4) <= uVar7) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3bad8e,0x8c1,unaff_EDI + 0x3c094d);
            }
            if (7 < bVar2) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0(unaff_EDI + 0x3baee2,0x3da,unaff_EDI + 0x3c09ed);
            }
                    /* WARNING: Could not recover jumptable at 0x00092956. Too many branches */
                    /* WARNING: Treating indirect jump as call */
            (*(code *)(unaff_EDI + 0x557a09 + *(int *)(unaff_EDI + 0x3c15e1 + uVar10 * 4)))();
            return;
          }
          local_50[2] = param_2[2];
          local_50 = local_50 + 3;
        }
      }
      if (param_3 == uVar12 + 1) {
        param_3 = (int)local_50 - (int)param_9;
        goto LAB_00092821;
      }
      uVar12 = uVar12 + 1;
      param_2 = param_2 + 3;
      iVar11 = *(int *)param_1[5];
    } while (uVar12 < (uint)(((int *)param_1[5])[1] - iVar11));
  }
                    /* WARNING: Subroutine does not return */
  FUN_002446e0(unaff_EDI + 0x3baecf,0x127,unaff_EDI + 0x3c09e1);
}

