############ FUN_ 18002f980 size=14481 ############

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

ulonglong *
FUN_18002f980(longlong param_1,int param_2,longlong param_3,undefined4 param_4,int param_5,
             undefined8 param_6,undefined8 param_7)

{
  int iVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  char cVar5;
  char cVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  ulonglong *puVar10;
  int iVar11;
  int iVar12;
  int iVar13;
  uint uVar14;
  int iVar15;
  int iVar16;
  int iVar17;
  int iVar18;
  int iVar19;
  int iVar20;
  int iVar21;
  int iVar22;
  int iVar23;
  uint uVar24;
  int iVar25;
  uint uVar26;
  int iVar27;
  int iVar28;
  int iVar29;
  int iVar30;
  int iVar31;
  int iVar32;
  int iVar33;
  int iVar34;
  int iVar35;
  int iVar36;
  int iVar37;
  int iVar38;
  int iVar39;
  int iVar40;
  int iVar41;
  uint uVar42;
  int iVar43;
  int iVar44;
  int iVar45;
  int iVar46;
  int iVar47;
  int iVar48;
  int iVar49;
  int iVar50;
  int iVar51;
  uint uVar52;
  int iVar53;
  int iVar54;
  int iVar55;
  int iVar56;
  int iVar57;
  int iVar58;
  int iVar59;
  int iVar60;
  int iVar61;
  ulonglong uVar62;
  ulonglong uVar63;
  ulonglong *local_900;
  
  iVar2 = *(int *)(&DAT_181c5e0fc + (longlong)param_2 * 4);
  iVar19 = param_2 - iVar2;
  if (iVar19 < 0x12) {
    *(undefined8 *)(param_1 + 0x38) = param_6;
    puVar10 = (ulonglong *)FUN_18002e360(iVar19,param_3);
    iVar25 = 1 << ((byte)iVar19 & 0x1f);
    *(uint *)(param_1 + 0x1c) = iVar25 * 0x10 + 0x3fU & 0xffffffc0;
  }
  else {
    puVar10 = (ulonglong *)FUN_18002f980(param_1,iVar19,param_3,param_4,param_5 + 1,param_6,param_7)
    ;
    iVar25 = 1 << ((byte)iVar19 & 0x1f);
  }
  uVar24 = 0;
  uVar3 = *(undefined4 *)(&DAT_181c5e15c + (longlong)param_2 * 4);
  *(ulonglong **)(param_1 + 0x78 + (longlong)param_5 * 8) = puVar10;
  if (0 < iVar25) {
    iVar4 = iVar25 * 2;
    iVar33 = 1 << ((byte)uVar3 - (char)iVar2 & 0x1f);
    uVar42 = (int)(iVar33 + 3 + ((uint)(iVar33 + 3 >> 1) >> 0x1e)) >> 2;
    iVar43 = 0;
    iVar15 = 0;
    iVar11 = 0;
    local_900 = puVar10;
    do {
      uVar26 = 1;
      iVar16 = -iVar19;
      iVar44 = iVar19;
      if (-iVar2 < 0) {
        do {
          iVar12 = iVar44 + 2;
          cVar5 = (char)(iVar16 + -2);
          cVar6 = (char)param_4;
          if (iVar12 == param_2) {
            iVar44 = 1 << ((byte)iVar12 & 0x1f);
            iVar32 = 1 << (cVar5 + cVar6 & 0x1fU);
            if (0 < (int)uVar26 >> 1) {
              iVar56 = (int)(((uint)(iVar44 >> 1) >> 0x1e) + iVar44) >> 2;
              iVar31 = iVar32 * iVar56;
              iVar50 = iVar32 * iVar15;
              iVar29 = iVar32 * iVar11;
              iVar22 = iVar44 / 2;
              iVar57 = iVar32 * iVar22;
              iVar8 = iVar31 - iVar50;
              iVar13 = iVar32 + iVar50;
              iVar21 = iVar50 - iVar57;
              iVar7 = iVar32 * 4;
              iVar37 = (int)(((uint)(iVar44 * 3 >> 1) >> 0x1e) + iVar44 * 3) >> 2;
              iVar23 = iVar32 * iVar37;
              iVar20 = iVar50 - iVar23;
              iVar45 = iVar29 - iVar23;
              iVar34 = iVar31 - iVar29;
              iVar35 = iVar29 - iVar57;
              iVar1 = iVar29 + iVar32 * 4;
              iVar27 = iVar44 * iVar32 - iVar29;
              iVar30 = iVar44 * iVar32 - iVar50;
              iVar44 = iVar29 + iVar32 * 2;
              iVar17 = iVar50 + iVar32 * 2;
              iVar18 = iVar32 * 3;
              iVar39 = iVar18 + iVar50;
              iVar47 = iVar29 + iVar32 * 6;
              iVar28 = iVar32 * 8;
              uVar52 = 0;
              do {
                uVar14 = 0;
                if (0 < iVar33) {
                  iVar58 = iVar32 * iVar4 * uVar52;
                  iVar38 = iVar32 * iVar25 * uVar52;
                  do {
                    iVar9 = iVar25 * uVar52 + iVar15 + uVar14 * 4;
                    if (iVar56 < iVar9) {
                      iVar40 = iVar7 * uVar14;
                      if (iVar22 < iVar9) {
                        if (iVar37 < iVar9) {
                          *local_900 = *(ulonglong *)
                                        (param_3 + (longlong)(iVar20 + iVar38 + iVar40) * 8);
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)((iVar30 - iVar38) - iVar40) * 8);
                        }
                        else {
                          *local_900 = *(ulonglong *)
                                        (param_3 + (longlong)-(iVar20 + iVar38 + iVar40) * 8) ^
                                       _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)(iVar21 + iVar38 + iVar40) * 8);
                        }
                      }
                      else {
                        *local_900 = *(ulonglong *)
                                      (param_3 + (longlong)(iVar40 + (iVar38 - iVar8)) * 8) ^
                                     _DAT_181c5e1e0;
                        uVar63 = *(ulonglong *)(param_3 + (longlong)-(iVar21 + iVar38 + iVar40) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                    }
                    else {
                      *local_900 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)(int)-((iVar38 - iVar8) + iVar7 * uVar14) * 8);
                      uVar63 = *(ulonglong *)
                                (param_3 + (longlong)(int)(iVar50 + iVar38 + iVar7 * uVar14) * 8) ^
                               _DAT_181c5e1e0;
                    }
                    iVar40 = iVar7 * uVar14;
                    local_900[4] = uVar63;
                    iVar51 = iVar9 + 1;
                    if (iVar56 < iVar51) {
                      if (iVar22 < iVar51) {
                        if (iVar37 < iVar51) {
                          local_900[1] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)((iVar13 - iVar23) + iVar38 + iVar40) * 8);
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)(((iVar30 - iVar32) - iVar38) - iVar40) * 8
                                    );
                        }
                        else {
                          local_900[1] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)-(iVar32 + iVar20 + iVar38 + iVar40) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)((iVar13 - iVar57) + iVar38 + iVar40) * 8);
                        }
                      }
                      else {
                        local_900[1] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)((iVar13 - iVar31) + iVar38 + iVar40) * 8) ^
                                       _DAT_181c5e1e0;
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)-(iVar32 + iVar21 + iVar38 + iVar40) * 8) ^
                                 _DAT_181c5e1e0;
                      }
                    }
                    else {
                      local_900[1] = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar8 - iVar32) - iVar38) - iVar40) * 8);
                      uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar13 + iVar38 + iVar40) * 8) ^
                               _DAT_181c5e1e0;
                    }
                    local_900[5] = uVar63;
                    iVar51 = iVar9 + 2;
                    if (iVar56 < iVar51) {
                      if (iVar22 < iVar51) {
                        if (iVar37 < iVar51) {
                          local_900[2] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)((iVar17 - iVar23) + iVar38 + iVar40) * 8);
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)(((iVar30 + iVar32 * -2) - iVar38) - iVar40) * 8);
                        }
                        else {
                          local_900[2] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)-(iVar20 + iVar32 * 2 + iVar38 + iVar40) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)((iVar17 - iVar57) + iVar38 + iVar40) * 8);
                        }
                      }
                      else {
                        local_900[2] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)((iVar17 - iVar31) + iVar38 + iVar40) * 8) ^
                                       _DAT_181c5e1e0;
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)-(iVar21 + iVar32 * 2 + iVar38 + iVar40) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                    }
                    else {
                      local_900[2] = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar32 * -2 + iVar8) - iVar38) - iVar40) * 8);
                      uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar17 + iVar38 + iVar40) * 8) ^
                               _DAT_181c5e1e0;
                    }
                    iVar9 = iVar9 + 3;
                    local_900[6] = uVar63;
                    if (iVar56 < iVar9) {
                      if (iVar22 < iVar9) {
                        if (iVar37 < iVar9) {
                          local_900[3] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)(iVar40 + iVar38 + (iVar39 - iVar23)) * 8);
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)(((iVar30 + iVar32 * -3) - iVar38) - iVar40) * 8);
                        }
                        else {
                          local_900[3] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)-(iVar40 + iVar20 + iVar18 + iVar38) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)(iVar40 + (iVar39 - iVar57) + iVar38) * 8);
                        }
                      }
                      else {
                        local_900[3] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)(iVar40 + (iVar39 - iVar31) + iVar38) * 8) ^
                                       _DAT_181c5e1e0;
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)-(iVar40 + iVar21 + iVar18 + iVar38) * 8) ^
                                 _DAT_181c5e1e0;
                      }
                    }
                    else {
                      local_900[3] = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar8 + iVar32 * -3) - iVar38) - iVar40) * 8);
                      uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar39 + iVar38) * 8) ^
                               _DAT_181c5e1e0;
                    }
                    local_900[7] = uVar63;
                    iVar9 = iVar4 * uVar52 + iVar11 + uVar14 * 8;
                    if (iVar56 < iVar9) {
                      iVar40 = iVar28 * uVar14;
                      if (iVar22 < iVar9) {
                        if (iVar37 < iVar9) {
                          local_900[8] = *(ulonglong *)
                                          (param_3 + (longlong)(iVar45 + iVar58 + iVar40) * 8);
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)((iVar27 - iVar58) - iVar40) * 8);
                        }
                        else {
                          local_900[8] = *(ulonglong *)
                                          (param_3 + (longlong)-(iVar45 + iVar58 + iVar40) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)(iVar35 + iVar58 + iVar40) * 8);
                        }
                      }
                      else {
                        local_900[8] = *(ulonglong *)
                                        (param_3 + (longlong)(iVar40 + (iVar58 - iVar34)) * 8) ^
                                       _DAT_181c5e1e0;
                        uVar63 = *(ulonglong *)(param_3 + (longlong)-(iVar35 + iVar58 + iVar40) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                    }
                    else {
                      local_900[8] = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(int)-((iVar58 - iVar34) + iVar28 * uVar14) * 8);
                      uVar63 = *(ulonglong *)
                                (param_3 + (longlong)(int)(iVar29 + iVar58 + iVar28 * uVar14) * 8) ^
                               _DAT_181c5e1e0;
                    }
                    iVar40 = iVar28 * uVar14;
                    local_900[0xc] = uVar63;
                    iVar51 = iVar9 + 2;
                    if (iVar56 < iVar51) {
                      if (iVar22 < iVar51) {
                        if (iVar37 < iVar51) {
                          local_900[9] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)((iVar44 - iVar23) + iVar58 + iVar40) * 8);
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)(((iVar27 + iVar32 * -2) - iVar58) - iVar40) * 8);
                        }
                        else {
                          local_900[9] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)-(iVar45 + iVar32 * 2 + iVar58 + iVar40) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)((iVar44 - iVar57) + iVar58 + iVar40) * 8);
                        }
                      }
                      else {
                        local_900[9] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)((iVar44 - iVar31) + iVar58 + iVar40) * 8) ^
                                       _DAT_181c5e1e0;
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)-(iVar35 + iVar32 * 2 + iVar58 + iVar40) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                    }
                    else {
                      local_900[9] = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar34 + iVar32 * -2) - iVar58) - iVar40) * 8);
                      uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar44 + iVar58) * 8) ^
                               _DAT_181c5e1e0;
                    }
                    local_900[0xd] = uVar63;
                    iVar51 = iVar9 + 4;
                    if (iVar56 < iVar51) {
                      if (iVar22 < iVar51) {
                        if (iVar37 < iVar51) {
                          local_900[10] =
                               *(ulonglong *)
                                (param_3 + (longlong)((iVar1 - iVar23) + iVar58 + iVar40) * 8);
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)(((iVar27 + iVar32 * -4) - iVar58) - iVar40) * 8);
                        }
                        else {
                          local_900[10] =
                               *(ulonglong *)
                                (param_3 + (longlong)-(iVar45 + iVar32 * 4 + iVar58 + iVar40) * 8) ^
                               _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)((iVar1 - iVar57) + iVar58 + iVar40) * 8);
                        }
                      }
                      else {
                        local_900[10] =
                             *(ulonglong *)
                              (param_3 + (longlong)((iVar1 - iVar31) + iVar58 + iVar40) * 8) ^
                             _DAT_181c5e1e0;
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)-(iVar35 + iVar32 * 4 + iVar58 + iVar40) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                    }
                    else {
                      local_900[10] =
                           *(ulonglong *)
                            (param_3 + (longlong)(((iVar34 + iVar32 * -4) - iVar58) - iVar40) * 8);
                      uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar1 + iVar58 + iVar40) * 8) ^
                               _DAT_181c5e1e0;
                    }
                    iVar9 = iVar9 + 6;
                    local_900[0xe] = uVar63;
                    if (iVar56 < iVar9) {
                      if (iVar22 < iVar9) {
                        if (iVar37 < iVar9) {
                          local_900[0xb] =
                               *(ulonglong *)
                                (param_3 + (longlong)(iVar40 + iVar58 + (iVar47 - iVar23)) * 8);
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)(((iVar27 + iVar32 * -6) - iVar58) - iVar40) * 8);
                        }
                        else {
                          local_900[0xb] =
                               *(ulonglong *)
                                (param_3 + (longlong)-(iVar40 + iVar45 + iVar32 * 6 + iVar58) * 8) ^
                               _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)(iVar40 + (iVar47 - iVar57) + iVar58) * 8);
                        }
                      }
                      else {
                        local_900[0xb] =
                             *(ulonglong *)
                              (param_3 + (longlong)(iVar40 + (iVar47 - iVar31) + iVar58) * 8) ^
                             _DAT_181c5e1e0;
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)-(iVar40 + iVar35 + iVar32 * 6 + iVar58) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                    }
                    else {
                      local_900[0xb] =
                           *(ulonglong *)
                            (param_3 + (longlong)(((iVar32 * -6 + iVar34) - iVar58) - iVar40) * 8);
                      uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar40 + iVar47 + iVar58) * 8) ^
                               _DAT_181c5e1e0;
                    }
                    uVar14 = uVar14 + 1;
                    local_900[0xf] = uVar63;
                    local_900 = local_900 + 0x10;
                  } while (uVar14 < uVar42);
                }
                uVar52 = uVar52 + 1;
              } while (uVar52 < (uint)((int)uVar26 >> 1));
            }
LAB_18003311c:
            uVar26 = uVar26 << 2;
            iVar16 = iVar16 + -2;
          }
          else {
            if ((iVar44 + 4 == param_2) || (iVar44 + 6 == param_2)) {
              iVar32 = 1 << ((byte)iVar12 & 0x1f);
              iVar44 = 1 << (cVar5 + cVar6 & 0x1fU);
              if (0 < (int)uVar26) {
                iVar56 = iVar44 * iVar15;
                iVar57 = iVar44 * iVar43;
                iVar59 = iVar44 * iVar11;
                iVar8 = (int)(((uint)(iVar32 >> 1) >> 0x1e) + iVar32) >> 2;
                iVar1 = iVar44 + iVar56;
                iVar51 = iVar44 * iVar8;
                iVar58 = iVar32 / 2;
                iVar50 = iVar44 * iVar58;
                iVar27 = iVar51 - iVar56;
                iVar53 = iVar57 - iVar50;
                iVar28 = iVar56 - iVar50;
                iVar9 = (int)(((uint)(iVar32 * 3 >> 1) >> 0x1e) + iVar32 * 3) >> 2;
                iVar45 = iVar44 * iVar9;
                iVar32 = iVar32 * iVar44;
                iVar31 = iVar57 - iVar45;
                iVar40 = iVar56 - iVar45;
                iVar38 = iVar59 - iVar45;
                iVar21 = iVar51 - iVar57;
                iVar35 = iVar51 - iVar59;
                iVar22 = iVar59 - iVar50;
                iVar18 = iVar44 * 4;
                iVar39 = iVar59 + iVar44 * 4;
                iVar54 = iVar32 - iVar59;
                iVar46 = iVar32 - iVar56;
                iVar32 = iVar32 - iVar57;
                iVar47 = iVar59 + iVar44 * 2;
                iVar7 = iVar56 + iVar44 * 2;
                iVar34 = iVar44 * 3;
                iVar60 = iVar57 + iVar34;
                iVar13 = iVar34 + iVar56;
                iVar30 = iVar57 + iVar44 * 6;
                iVar17 = iVar59 + iVar44 * 6;
                iVar29 = iVar44 * 8;
                iVar37 = iVar44 * 9;
                iVar23 = iVar37 + iVar57;
                iVar20 = iVar44 * 0xc;
                uVar52 = 0;
                do {
                  uVar14 = 0;
                  if (0 < iVar33) {
                    iVar48 = iVar44 * iVar4 * uVar52;
                    iVar36 = iVar44 * iVar25 * uVar52;
                    iVar41 = iVar44 * iVar25 * 3 * uVar52;
                    do {
                      iVar55 = iVar25 * uVar52 + iVar15 + uVar14 * 4;
                      if (iVar8 < iVar55) {
                        iVar49 = iVar18 * uVar14;
                        if (iVar58 < iVar55) {
                          if (iVar9 < iVar55) {
                            *local_900 = *(ulonglong *)
                                          (param_3 + (longlong)(iVar40 + iVar36 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar46 - iVar36) - iVar49) * 8);
                          }
                          else {
                            *local_900 = *(ulonglong *)
                                          (param_3 + (longlong)-(iVar40 + iVar36 + iVar49) * 8) ^
                                         _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)(iVar28 + iVar36 + iVar49) * 8);
                          }
                        }
                        else {
                          *local_900 = *(ulonglong *)
                                        (param_3 + (longlong)(iVar49 + (iVar36 - iVar27)) * 8) ^
                                       _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)-(iVar28 + iVar36 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        *local_900 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(int)-((iVar36 - iVar27) + iVar18 * uVar14) * 8);
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)(int)(iVar56 + iVar36 + iVar18 * uVar14) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      iVar49 = iVar18 * uVar14;
                      local_900[4] = uVar63;
                      iVar61 = iVar55 + 1;
                      if (iVar8 < iVar61) {
                        if (iVar58 < iVar61) {
                          if (iVar9 < iVar61) {
                            local_900[1] = *(ulonglong *)
                                            (param_3 +
                                            (longlong)((iVar1 - iVar45) + iVar36 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar46 - iVar44) - iVar36) - iVar49) * 8);
                          }
                          else {
                            local_900[1] = *(ulonglong *)
                                            (param_3 +
                                            (longlong)-(iVar44 + iVar40 + iVar36 + iVar49) * 8) ^
                                           _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar1 - iVar50) + iVar36 + iVar49) * 8)
                            ;
                          }
                        }
                        else {
                          local_900[1] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)((iVar1 - iVar51) + iVar36 + iVar49) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)-(iVar44 + iVar28 + iVar36 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[1] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)(((iVar27 - iVar44) - iVar36) - iVar49) * 8);
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar1 + iVar36 + iVar49) * 8) ^
                                 _DAT_181c5e1e0;
                      }
                      local_900[5] = uVar63;
                      iVar61 = iVar55 + 2;
                      if (iVar8 < iVar61) {
                        if (iVar58 < iVar61) {
                          if (iVar9 < iVar61) {
                            local_900[2] = *(ulonglong *)
                                            (param_3 +
                                            (longlong)((iVar7 - iVar45) + iVar36 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar46 + iVar44 * -2) - iVar36) - iVar49) * 8);
                          }
                          else {
                            local_900[2] = *(ulonglong *)
                                            (param_3 +
                                            (longlong)-(iVar40 + iVar44 * 2 + iVar36 + iVar49) * 8)
                                           ^ _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar7 - iVar50) + iVar36 + iVar49) * 8)
                            ;
                          }
                        }
                        else {
                          local_900[2] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)((iVar7 - iVar51) + iVar36 + iVar49) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)-(iVar28 + iVar44 * 2 + iVar36 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[2] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)(((iVar44 * -2 + iVar27) - iVar36) - iVar49) * 8);
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar7 + iVar36 + iVar49) * 8) ^
                                 _DAT_181c5e1e0;
                      }
                      iVar55 = iVar55 + 3;
                      local_900[6] = uVar63;
                      if (iVar8 < iVar55) {
                        if (iVar58 < iVar55) {
                          if (iVar9 < iVar55) {
                            local_900[3] = *(ulonglong *)
                                            (param_3 +
                                            (longlong)(iVar49 + iVar36 + (iVar13 - iVar45)) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar46 + iVar44 * -3) - iVar36) - iVar49) * 8);
                          }
                          else {
                            local_900[3] = *(ulonglong *)
                                            (param_3 +
                                            (longlong)-(iVar49 + iVar40 + iVar34 + iVar36) * 8) ^
                                           _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)(iVar49 + (iVar13 - iVar50) + iVar36) * 8
                                      );
                          }
                        }
                        else {
                          local_900[3] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)(iVar49 + (iVar13 - iVar51) + iVar36) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)-(iVar49 + iVar28 + iVar34 + iVar36) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[3] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)(((iVar27 + iVar44 * -3) - iVar36) - iVar49) * 8);
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar13 + iVar36) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      local_900[7] = uVar63;
                      iVar55 = iVar4 * uVar52 + iVar11 + uVar14 * 8;
                      if (iVar8 < iVar55) {
                        iVar49 = iVar29 * uVar14;
                        if (iVar58 < iVar55) {
                          if (iVar9 < iVar55) {
                            local_900[8] = *(ulonglong *)
                                            (param_3 + (longlong)(iVar38 + iVar48 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar54 - iVar48) - iVar49) * 8);
                          }
                          else {
                            local_900[8] = *(ulonglong *)
                                            (param_3 + (longlong)-(iVar38 + iVar48 + iVar49) * 8) ^
                                           _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)(iVar22 + iVar48 + iVar49) * 8);
                          }
                        }
                        else {
                          local_900[8] = *(ulonglong *)
                                          (param_3 + (longlong)(iVar49 + (iVar48 - iVar35)) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)-(iVar22 + iVar48 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[8] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)(int)-((iVar48 - iVar35) + iVar29 * uVar14) * 8);
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)(int)(iVar59 + iVar48 + iVar29 * uVar14) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      iVar49 = iVar29 * uVar14;
                      local_900[0xc] = uVar63;
                      iVar61 = iVar55 + 2;
                      if (iVar8 < iVar61) {
                        if (iVar58 < iVar61) {
                          if (iVar9 < iVar61) {
                            local_900[9] = *(ulonglong *)
                                            (param_3 +
                                            (longlong)((iVar47 - iVar45) + iVar48 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar54 + iVar44 * -2) - iVar48) - iVar49) * 8);
                          }
                          else {
                            local_900[9] = *(ulonglong *)
                                            (param_3 +
                                            (longlong)-(iVar38 + iVar44 * 2 + iVar48 + iVar49) * 8)
                                           ^ _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar47 - iVar50) + iVar48 + iVar49) * 8
                                      );
                          }
                        }
                        else {
                          local_900[9] = *(ulonglong *)
                                          (param_3 +
                                          (longlong)((iVar47 - iVar51) + iVar48 + iVar49) * 8) ^
                                         _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)-(iVar22 + iVar44 * 2 + iVar48 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[9] = *(ulonglong *)
                                        (param_3 +
                                        (longlong)(((iVar35 + iVar44 * -2) - iVar48) - iVar49) * 8);
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar47 + iVar48 + iVar49) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      local_900[0xd] = uVar63;
                      iVar61 = iVar55 + 4;
                      if (iVar8 < iVar61) {
                        if (iVar58 < iVar61) {
                          if (iVar9 < iVar61) {
                            local_900[10] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)((iVar39 - iVar45) + iVar48 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar54 + iVar44 * -4) - iVar48) - iVar49) * 8);
                          }
                          else {
                            local_900[10] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)-(iVar38 + iVar44 * 4 + iVar48 + iVar49) * 8)
                                 ^ _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar39 - iVar50) + iVar48 + iVar49) * 8
                                      );
                          }
                        }
                        else {
                          local_900[10] =
                               *(ulonglong *)
                                (param_3 + (longlong)((iVar39 - iVar51) + iVar48 + iVar49) * 8) ^
                               _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)-(iVar22 + iVar44 * 4 + iVar48 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[10] =
                             *(ulonglong *)
                              (param_3 + (longlong)(((iVar35 + iVar44 * -4) - iVar48) - iVar49) * 8)
                        ;
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar39 + iVar48 + iVar49) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      iVar55 = iVar55 + 6;
                      local_900[0xe] = uVar63;
                      if (iVar8 < iVar55) {
                        if (iVar58 < iVar55) {
                          if (iVar9 < iVar55) {
                            local_900[0xb] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)(iVar49 + iVar48 + (iVar17 - iVar45)) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar54 + iVar44 * -6) - iVar48) - iVar49) * 8);
                          }
                          else {
                            local_900[0xb] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)-(iVar49 + iVar38 + iVar44 * 6 + iVar48) * 8)
                                 ^ _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)(iVar49 + (iVar17 - iVar50) + iVar48) * 8
                                      );
                          }
                        }
                        else {
                          local_900[0xb] =
                               *(ulonglong *)
                                (param_3 + (longlong)(iVar49 + (iVar17 - iVar51) + iVar48) * 8) ^
                               _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)-(iVar49 + iVar22 + iVar44 * 6 + iVar48) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[0xb] =
                             *(ulonglong *)
                              (param_3 + (longlong)(((iVar44 * -6 + iVar35) - iVar48) - iVar49) * 8)
                        ;
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar17 + iVar48) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      local_900[0xf] = uVar63;
                      iVar55 = iVar25 * 3 * uVar52 + iVar43 + uVar14 * 0xc;
                      if (iVar8 < iVar55) {
                        iVar49 = iVar20 * uVar14;
                        if (iVar58 < iVar55) {
                          if (iVar9 < iVar55) {
                            local_900[0x10] =
                                 *(ulonglong *)(param_3 + (longlong)(iVar31 + iVar41 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar32 - iVar41) - iVar49) * 8);
                          }
                          else {
                            local_900[0x10] =
                                 *(ulonglong *)(param_3 + (longlong)-(iVar31 + iVar41 + iVar49) * 8)
                                 ^ _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)(iVar53 + iVar41 + iVar49) * 8);
                          }
                        }
                        else {
                          local_900[0x10] =
                               *(ulonglong *)(param_3 + (longlong)(iVar49 + (iVar41 - iVar21)) * 8)
                               ^ _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)-(iVar53 + iVar41 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[0x10] =
                             *(ulonglong *)
                              (param_3 + (longlong)(int)-((iVar41 - iVar21) + iVar20 * uVar14) * 8);
                        uVar63 = *(ulonglong *)
                                  (param_3 + (longlong)(int)(iVar57 + iVar41 + iVar20 * uVar14) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      iVar49 = iVar20 * uVar14;
                      local_900[0x14] = uVar63;
                      iVar61 = iVar55 + 3;
                      if (iVar8 < iVar61) {
                        if (iVar58 < iVar61) {
                          if (iVar9 < iVar61) {
                            local_900[0x11] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)((iVar60 - iVar45) + iVar41 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar32 + iVar44 * -3) - iVar41) - iVar49) * 8);
                          }
                          else {
                            local_900[0x11] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)-(iVar31 + iVar34 + iVar41 + iVar49) * 8) ^
                                 _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar60 - iVar50) + iVar41 + iVar49) * 8
                                      );
                          }
                        }
                        else {
                          local_900[0x11] =
                               *(ulonglong *)
                                (param_3 + (longlong)((iVar60 - iVar51) + iVar41 + iVar49) * 8) ^
                               _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)-(iVar53 + iVar34 + iVar41 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[0x11] =
                             *(ulonglong *)
                              (param_3 + (longlong)(((iVar21 + iVar44 * -3) - iVar41) - iVar49) * 8)
                        ;
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar60 + iVar41 + iVar49) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      local_900[0x15] = uVar63;
                      iVar61 = iVar55 + 6;
                      if (iVar8 < iVar61) {
                        if (iVar58 < iVar61) {
                          if (iVar9 < iVar61) {
                            local_900[0x12] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)((iVar30 - iVar45) + iVar41 + iVar49) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar32 + iVar44 * -6) - iVar41) - iVar49) * 8);
                          }
                          else {
                            local_900[0x12] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)-(iVar31 + iVar44 * 6 + iVar41 + iVar49) * 8)
                                 ^ _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar30 - iVar50) + iVar41 + iVar49) * 8
                                      );
                          }
                        }
                        else {
                          local_900[0x12] =
                               *(ulonglong *)
                                (param_3 + (longlong)((iVar30 - iVar51) + iVar41 + iVar49) * 8) ^
                               _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)-(iVar53 + iVar44 * 6 + iVar41 + iVar49) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[0x12] =
                             *(ulonglong *)
                              (param_3 + (longlong)(((iVar21 + iVar44 * -6) - iVar41) - iVar49) * 8)
                        ;
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar30 + iVar41 + iVar49) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      iVar55 = iVar55 + 9;
                      local_900[0x16] = uVar63;
                      if (iVar8 < iVar55) {
                        if (iVar58 < iVar55) {
                          if (iVar9 < iVar55) {
                            local_900[0x13] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)(iVar49 + iVar41 + (iVar23 - iVar45)) * 8);
                            uVar63 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar32 + iVar44 * -9) - iVar41) - iVar49) * 8);
                          }
                          else {
                            local_900[0x13] =
                                 *(ulonglong *)
                                  (param_3 + (longlong)-(iVar49 + iVar31 + iVar37 + iVar41) * 8) ^
                                 _DAT_181c5e1e0;
                            uVar63 = *(ulonglong *)
                                      (param_3 + (longlong)(iVar49 + (iVar23 - iVar50) + iVar41) * 8
                                      );
                          }
                        }
                        else {
                          local_900[0x13] =
                               *(ulonglong *)
                                (param_3 + (longlong)(iVar49 + (iVar23 - iVar51) + iVar41) * 8) ^
                               _DAT_181c5e1e0;
                          uVar63 = *(ulonglong *)
                                    (param_3 + (longlong)-(iVar49 + iVar53 + iVar37 + iVar41) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[0x13] =
                             *(ulonglong *)
                              (param_3 + (longlong)(((iVar21 + iVar44 * -9) - iVar41) - iVar49) * 8)
                        ;
                        uVar63 = *(ulonglong *)(param_3 + (longlong)(iVar49 + iVar23 + iVar41) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      uVar14 = uVar14 + 1;
                      local_900[0x17] = uVar63;
                      local_900 = local_900 + 0x18;
                    } while (uVar14 < uVar42);
                  }
                  uVar52 = uVar52 + 1;
                } while (uVar52 < uVar26);
              }
              goto LAB_18003311c;
            }
            iVar12 = iVar44 + 3;
            if (0 < (int)uVar26) {
              iVar44 = 1 << ((byte)iVar12 & 0x1f);
              iVar50 = 1 << (cVar6 + (char)(iVar16 + -3) & 0x1fU);
              iVar7 = iVar15 * iVar50;
              iVar34 = (int)(((uint)(iVar44 * 3 >> 1) >> 0x1e) + iVar44 * 3) >> 2;
              iVar45 = iVar44 * iVar50 - iVar7;
              iVar13 = iVar34 * iVar50;
              iVar17 = iVar44 / 2;
              iVar18 = iVar17 * iVar50;
              iVar56 = iVar13 - iVar7;
              iVar37 = (int)(((uint)(iVar44 >> 1) >> 0x1e) + iVar44) >> 2;
              iVar29 = iVar37 * iVar50;
              iVar57 = iVar18 - iVar7;
              iVar44 = iVar50 * 3 + iVar7;
              iVar32 = iVar7 + iVar50 * 2;
              iVar1 = iVar50 + iVar7;
              iVar30 = iVar29 - iVar7;
              iVar39 = 0;
              iVar47 = 0;
              uVar52 = 0;
              do {
                uVar14 = 0;
                iVar8 = 0;
                if (0 < iVar33) {
                  iVar35 = -iVar39;
                  do {
                    iVar58 = -iVar8;
                    iVar20 = iVar44 + iVar39 + iVar8;
                    iVar21 = iVar1 + iVar39 + iVar8;
                    iVar22 = (iVar39 - iVar56) + iVar8;
                    iVar28 = (iVar39 - iVar57) + iVar8;
                    iVar23 = (iVar39 - iVar30) + iVar8;
                    iVar31 = iVar32 + iVar39 + iVar8;
                    iVar38 = iVar7 + iVar39 + iVar8;
                    iVar27 = iVar15 + iVar47 + uVar14 * 4;
                    uVar63 = 0;
                    do {
                      iVar40 = (int)uVar63;
                      iVar9 = iVar27 + iVar27 * iVar40;
                      if (iVar37 < iVar9) {
                        iVar51 = iVar38 * iVar40;
                        if (iVar17 < iVar9) {
                          if (iVar34 < iVar9) {
                            local_900[uVar63 * 8] =
                                 *(ulonglong *)(param_3 + (longlong)(iVar22 + iVar51) * 8);
                            uVar62 = *(ulonglong *)
                                      (param_3 + (longlong)((iVar45 + iVar35 + iVar58) - iVar51) * 8
                                      );
                          }
                          else {
                            local_900[uVar63 * 8] =
                                 *(ulonglong *)(param_3 + (longlong)-(iVar22 + iVar51) * 8) ^
                                 _DAT_181c5e1e0;
                            uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar51 + iVar28) * 8);
                          }
                        }
                        else {
                          local_900[uVar63 * 8] =
                               *(ulonglong *)(param_3 + (longlong)(iVar23 + iVar51) * 8) ^
                               _DAT_181c5e1e0;
                          uVar62 = *(ulonglong *)(param_3 + (longlong)-(iVar51 + iVar28) * 8) ^
                                   _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[uVar63 * 8] =
                             *(ulonglong *)(param_3 + (longlong)-(iVar23 + iVar38 * iVar40) * 8);
                        uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar38 * iVar40 + iVar38) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      local_900[uVar63 * 8 + 4] = uVar62;
                      iVar51 = iVar27 + 1 + iVar27 * iVar40 + iVar40;
                      if (iVar37 < iVar51) {
                        iVar46 = iVar21 * iVar40;
                        if (iVar17 < iVar51) {
                          if (iVar34 < iVar51) {
                            local_900[uVar63 * 8 + 1] =
                                 *(ulonglong *)
                                  (param_3 +
                                  (longlong)(iVar46 + (iVar1 - iVar13) + iVar39 + iVar8) * 8);
                            uVar62 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(((iVar45 - iVar50) + iVar35 + iVar58) - iVar46) * 8
                                      );
                          }
                          else {
                            local_900[uVar63 * 8 + 1] =
                                 *(ulonglong *)
                                  (param_3 +
                                  (longlong)(((iVar56 - iVar50) + iVar35 + iVar58) - iVar46) * 8) ^
                                 _DAT_181c5e1e0;
                            uVar62 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(iVar46 + (iVar1 - iVar18) + iVar39 + iVar8) * 8);
                          }
                        }
                        else {
                          local_900[uVar63 * 8 + 1] =
                               *(ulonglong *)
                                (param_3 +
                                (longlong)(iVar46 + (iVar1 - iVar29) + iVar39 + iVar8) * 8) ^
                               _DAT_181c5e1e0;
                          uVar62 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)(((iVar57 - iVar50) + iVar35 + iVar58) - iVar46) * 8)
                                   ^ _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[uVar63 * 8 + 1] =
                             *(ulonglong *)
                              (param_3 +
                              (longlong)(((iVar30 - iVar50) + iVar35 + iVar58) - iVar21 * iVar40) *
                              8);
                        uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar21 * iVar40 + iVar21) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      local_900[uVar63 * 8 + 5] = uVar62;
                      iVar51 = iVar9 + 2 + iVar40 * 2;
                      if (iVar37 < iVar51) {
                        iVar46 = iVar31 * iVar40;
                        if (iVar17 < iVar51) {
                          if (iVar34 < iVar51) {
                            local_900[uVar63 * 8 + 2] =
                                 *(ulonglong *)
                                  (param_3 +
                                  (longlong)(iVar46 + (iVar32 - iVar13) + iVar39 + iVar8) * 8);
                            uVar62 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)((iVar45 + iVar50 * -2 + iVar35 + iVar58) - iVar46)
                                      * 8);
                          }
                          else {
                            local_900[uVar63 * 8 + 2] =
                                 *(ulonglong *)
                                  (param_3 +
                                  (longlong)((iVar56 + iVar50 * -2 + iVar35 + iVar58) - iVar46) * 8)
                                 ^ _DAT_181c5e1e0;
                            uVar62 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(iVar46 + (iVar32 - iVar18) + iVar39 + iVar8) * 8);
                          }
                        }
                        else {
                          local_900[uVar63 * 8 + 2] =
                               *(ulonglong *)
                                (param_3 +
                                (longlong)(iVar46 + (iVar32 - iVar29) + iVar39 + iVar8) * 8) ^
                               _DAT_181c5e1e0;
                          uVar62 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)((iVar57 + iVar50 * -2 + iVar35 + iVar58) - iVar46) *
                                    8) ^ _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[uVar63 * 8 + 2] =
                             *(ulonglong *)
                              (param_3 +
                              (longlong)((iVar50 * -2 + iVar30 + iVar35 + iVar58) - iVar31 * iVar40)
                              * 8);
                        uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar31 * iVar40 + iVar31) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      local_900[uVar63 * 8 + 6] = uVar62;
                      iVar9 = iVar9 + 3 + iVar40 * 3;
                      if (iVar37 < iVar9) {
                        iVar51 = iVar20 * iVar40;
                        if (iVar17 < iVar9) {
                          if (iVar34 < iVar9) {
                            local_900[uVar63 * 8 + 3] =
                                 *(ulonglong *)
                                  (param_3 +
                                  (longlong)(iVar51 + (iVar44 - iVar13) + iVar39 + iVar8) * 8);
                            uVar62 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)((iVar45 + iVar50 * -3 + iVar35 + iVar58) - iVar51)
                                      * 8);
                          }
                          else {
                            local_900[uVar63 * 8 + 3] =
                                 *(ulonglong *)
                                  (param_3 +
                                  (longlong)((iVar56 + iVar50 * -3 + iVar35 + iVar58) - iVar51) * 8)
                                 ^ _DAT_181c5e1e0;
                            uVar62 = *(ulonglong *)
                                      (param_3 +
                                      (longlong)(iVar51 + (iVar44 - iVar18) + iVar39 + iVar8) * 8);
                          }
                        }
                        else {
                          local_900[uVar63 * 8 + 3] =
                               *(ulonglong *)
                                (param_3 +
                                (longlong)(iVar51 + (iVar44 - iVar29) + iVar39 + iVar8) * 8) ^
                               _DAT_181c5e1e0;
                          uVar62 = *(ulonglong *)
                                    (param_3 +
                                    (longlong)((iVar57 + iVar50 * -3 + iVar35 + iVar58) - iVar51) *
                                    8) ^ _DAT_181c5e1e0;
                        }
                      }
                      else {
                        local_900[uVar63 * 8 + 3] =
                             *(ulonglong *)
                              (param_3 +
                              (longlong)((iVar58 + iVar35 + iVar50 * -3 + iVar30) - iVar20 * iVar40)
                              * 8);
                        uVar62 = *(ulonglong *)(param_3 + (longlong)(iVar20 * iVar40 + iVar20) * 8)
                                 ^ _DAT_181c5e1e0;
                      }
                      local_900[uVar63 * 8 + 7] = uVar62;
                      uVar63 = (ulonglong)(iVar40 + 1U);
                    } while (iVar40 + 1U < 7);
                    local_900 = local_900 + 0x38;
                    uVar14 = uVar14 + 1;
                    iVar8 = iVar8 + iVar50 * 4;
                  } while (uVar14 < uVar42);
                }
                uVar52 = uVar52 + 1;
                iVar47 = iVar47 + iVar25;
                iVar39 = iVar39 + iVar25 * iVar50;
              } while (uVar52 < uVar26);
            }
            uVar26 = uVar26 << 3;
            iVar16 = iVar16 + -3;
          }
          iVar44 = iVar12;
        } while (iVar12 < param_2);
      }
      uVar24 = uVar24 + 1;
      iVar43 = iVar43 + iVar33 * 3;
      iVar15 = iVar15 + iVar33;
      iVar11 = iVar11 + iVar33 * 2;
    } while (uVar24 < (uint)((iVar25 + -1 + iVar33) / iVar33));
  }
  iVar19 = (1 << ((byte)uVar3 & 0x1f)) << 4;
  iVar2 = *(int *)(param_1 + 0x1c);
  if (*(int *)(param_1 + 0x1c) <= iVar19) {
    iVar2 = iVar19;
  }
  *(int *)(param_1 + 0x1c) = iVar2;
  return puVar10 + (longlong)(1 << ((char)param_2 + 0x1fU & 0x1f)) * 2;
}



############ FUN_ 180015380 size=1146 ############
